2017-02-19 16 views
0

JavaとSpringの新機能です。私はSpring MVC初心者ガイドで私の最初のアプリをやっていると私は私の "カテゴリ"フィールドバリデータに問題があります。それは正しく動作しません.. 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

この答えは、コメントセクションにする必要がありますが、私はまだコメントを投稿することはできません。

文字列の平等は== operateurでは動作しません。

String.equals(String anotherString)を使用して比較する必要があります。

==を使用すると、2つの文字列が同じであるかどうかだけを確認できます。 等しいはStringの値を比較します。

希望します。

+0

...私には恥があります。 cppの習慣、ありがとう! – crooked