不工作验证器



我是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)比较它们。

使用==,您仅在内存中验证两个字符串相同。等于比较字符串的值。

希望它有帮助

最新更新