Java 无效验证器
我是Java和Spring新手。我正在用SpringMVC指南做我的第一个应用程序,我的“类别”字段验证器有问题。它不能正常工作。。Tbh根本不起作用 category.javaJava 无效验证器,java,spring,validation,annotations,Java,Spring,Validation,Annotations,我是Java和Spring新手。我正在用SpringMVC指南做我的第一个应用程序,我的“类别”字段验证器有问题。它不能正常工作。。Tbh根本不起作用 category.java @Target( { METHOD, FIELD, ANNOTATION_TYPE }) @Retention(RUNTIME) @Constraint(validatedBy = CategoryValidator.class) @Documented public @interface Category {
@Target( { METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = CategoryValidator.class)
@Documented
public @interface Category {
String message() default "{com.packt.webstore.validator.Category.message}";
Class<?>[] groups() default {};
public abstract Class<? extends Payload>[] payload() default {};
String[] allowedCategories() default {"Laptop","Tablet","Smartfon"};
}
@Target({METHOD,FIELD,ANNOTATION\u TYPE})
@保留(运行时)
@约束(validatedBy=CategoryValidator.class)
@记录
公共@接口类别{
String message()默认值“{com.packt.webstore.validator.Category.message}”;
类[]组()默认值{};
公共抽象类这个答案应该在评论部分,但我还不能发表评论:
字符串相等不适用于=
运算符
您必须使用String.equals(String-anotherString)
来比较它们
使用==
,您只能验证两个字符串在内存中是否相同。
等于比较字符串的值
希望对您有所帮助您是如何将验证器绑定到上下文的?…真为我感到羞耻。cpp habits,非常感谢!
public class CategoryValidator implements ConstraintValidator<Category, String> {
String[] allowedCategories;
public void initialize( Category constraintAnnotation ) {
this.allowedCategories = constraintAnnotation.allowedCategories();
}
public boolean isValid( String value, ConstraintValidatorContext context ) {
for( String category : allowedCategories ) {
if( value == category ) {
return false;
}
}
return true;
}