2017-02-19 43 views
0

即時通訊Java和Spring新手。我正在做Spring MVC Begginers Guide的第一個應用程序,並且我的「category」字段驗證程序有問題。它不能正常工作.. 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; 
} 

的問題是,一切我在 「類別」 類型的字段其返回其不正確的類別:/

我googling我的問題,但沒有發現任何東西:(有人可以解釋我是什麼做錯了:)?謝謝!

+0

你是如何將一個驗證器綁定到上下文的? –

回答

0

這個答案應該是在一個註釋部分,但我還不能發表評論:

字符串平等不== operateur工作。

您必須使用String.equals(String anotherString)來比較它們。

使用==,您只驗證兩個字符串在內存中是否相同。 等於比較字符串的值。

希望它有幫助

+0

...對我感到羞恥。 cpp的習慣,非常感謝! – crooked