2017-02-19 3 views
0

자바와 스프링의 새로운 기능. 임 봄 MVC Beginers 가이드와 함께 내 첫 번째 애플 리케이션을하고 내 "카테고리"필드 검사기에 문제가 있습니다. 제대로 작동하지 않습니다. 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)을 사용하여 비교해야합니다.

==을 사용하면 두 문자열이 동일한 메모리인지 확인해야합니다. 같음은 문자열 값을 비교합니다.

희망이 있습니다.

+0

... 나에 수치. cpp 습관, 많이 고마워! – crooked

관련 문제