Özel çekirdek doğrulaması oluşturmaya çalışıyorum ancak bazı nedenlerle çalışmıyor. Birisi bana sorunun ne olduğunu söyleyebilir mi?Özel Fasulye Doğrulaması çalışmıyor
Benim Ana sınıfı:
package validationtest;
import java.text.ParseException;
public class Main {
/**
* @param args the command line arguments
* @throws java.text.ParseException
* @throws java.lang.IllegalAccessException
*/
public static void main(String[] args) throws ParseException, IllegalArgumentException, IllegalAccessException {
Text msg = new Text();
System.out.println(msg.getMessage(""));
}
}
class Text {
public String getMessage(@NotEmpty(message = "Field message") String msg) {
return msg;
}
}
Benim doğrulama arayüzü
package validationtest;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
@Documented
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotEmptyImpl.class)
public @interface NotEmpty {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default{};
}
Benim doğrulama
package validationtest;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class NotEmptyImpl implements ConstraintValidator<NotEmpty, String> {
@Override
public void initialize(NotEmpty annotation) {
throw new RuntimeException("The field is not empty: " + annotation.message());
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return false;
}
return !"".equals(value);
}
}
Not uygulamak: Ben paketi validation-api-1.1.0.Final eklendi .jar sınıf yoluna.
içinde yalnızca API'yi yüklediniz? Impl değil? (örneğin, Hazırda Bekletme Validatoru) – BalusC
Tüm Hibernate kavanozlarına sınıf yolunu ekledim: hibernate-validator-5.2.4.Final –
Java ek açıklamalarının sadece "işaretçiler" olduğunu unutmayın: bunlar otomatik olarak "çalışmaz" veya davranışı yoktur. Bazı çerçeve veya araçların açıklamalarını okuması ve ardından uygun davranışı yürütmesi gerekir. Bu durumda, doğrulayıcıyı programlayıcı olarak nasıl uygulayacağımı anlamak için Hazırda Bekleme Validators hakkında biraz bilgi okumanız gerektiğini düşünüyorum. – DavidS