我是Java和Spring的新手。我正在使用Spring MVC Begginers Guide做我的第一个应用程序,我的“类别”字段验证器有问题。它无法正常工作.. Tbh它根本不起作用。
category.java
@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"};
}
CategoryValidator.java
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;
}
问题是我在“类别”字段中输入的所有内容都返回了不正确的类别:/
我在谷歌上搜索我的问题,但没有发现任何东西:(有人可以解释我,我做错了什么:)?谢谢!
答案 0 :(得分:0)
这个答案应该在评论部分,但我还不能发表评论:
字符串相等不适用于==
操作。
您必须使用String.equals(String anotherString)
来比较它们。
使用==
,您只验证两个字符串在内存中是否相同。
等于比较String的值。
希望这有帮助