2013-11-15 4 views
0

저는 Spring 프로젝트에 대한 유효성 검증 주석을 작성하려고합니다.다른 변수에 의존하는 스프링 유효성 확인

동일한 객체의 bool 값이 true가 아닌 한 nullable 인 여러 필드가 있습니다.

@NotNull(if xyz=true) 

:

같은 일을 할 몇 가지 쉬운 방법이 있습니까? 감사합니다

+0

확실하지,하지만 난 당신을 생각 주석을 사용하여이를 수행 할 수 없으며 가변기를 사용해야합니다. –

+0

사용자 정의 제약 조건과 유효성 검사기를 사용해야 할 것입니다. –

+0

[JSR 303 Validation의 복제본] 한 필드가 "something"과 같으면이 다른 필드는 null이 아니어야합니다.] (http://stackoverflow.com/questions/9284450/jsr-303-validation-if-one-field) -equals-something-then-these-other-fields-sho) –

답변

0

나는 그것이 주석 (너무 복잡)로 할 수는 없습니다 생각하지만,이 org.springframework.validation.Validator 인터페이스를 구현하여 매우 쉽게 수행 할 수 있습니다

public class MyClassValidator implements Validator { 
    @Override 
    public boolean supports(Class c) { 
     return MyClass.class.equals(c); 
    } 

    @Override 
    public void validate(Object object, Errors errors) { 
     MyClass myClass = (MyClass) object; 

     if (myClass.getA() == null) { 
      errors.rejectValue("avalue", "avalue.empty", "'A' value cannot be empty"); 
     } 
     else if (myClass.getA() == true && (myClass.getB() == null || myClass.getB() < 0)) { 
      errors.rejectValue("bvalue", "bvalue.notvalid", "'B' value is not valid"); 
     } 
    } 
} 
관련 문제