我是Java和Spring的新手。我正在使用Spring MVC Begginers指南进行第一个应用程序,并且我对"类别"字段验证器有问题。它无法正常工作.. 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"};
}
类别Validator.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;
}
问题是我在"类别"字段中输入的所有内容都返回其不正确的类别:/
我在谷歌搜索我的问题,但没有找到任何东西:(有人可以解释我在做什么错:)?谢谢!
此答案应在评论部分中,但我还不能发表评论:
字符串平等不适用于==
操作师。
您必须使用String.equals(String anotherString)
比较它们。
使用==
,您仅在内存中验证两个字符串相同。等于比较字符串的值。
希望它有帮助