2013-03-18 3 views
0

starup에서 설정해야하는 일부 속성에 따라 복잡한 논리로 사용자 정의 유효성 검사기를 작성하고 싶습니다. 스프링 구성 파일에 구성 요소 스캔 태그를 쓸 수도 있지만 클래스 또는 스프링 유효성 검사기에서 다른 속성을 설정하는 방법은 무 상태 클래스로 사용됩니까?스프링 밸리데이터를 맞춤 설정하는 방법은 무엇입니까?

public class CustomValidator implements Validator{ 
    private Map<String,Integer> parameters; 

    public boolean supports(Class clazz) { 
     return ObjectToValidate.class.equals(clazz);  
    } 

    public void validate(Object obj, Errors e) { 
     ObjectToValidate object = (ObjectToValidate) obj; 

     switch (parameters.get(object.getIntegerProperty())) { 
      case 1: 
       //validation algorithm 1; 
       break; 

      case 2: 
       //validation algorithm 2; 
       break; 

      //etc. 
     } 
    } 

    public void setParameters(Map<String,Integer> parameters){ 
     this.parameters = parameters; 
    } 

} 

답변

0

앱 컨텍스트에 org.springframework.validation.beanvalidation.LocalValidatorFactoryBean을 설정해야합니다.

그들은 필요한 @Autowired 속성마다 유효성 검사기를 삽입합니다. autowiring을 사용하고 싶지 않다면, bean으로 app context에 추가해야합니다. http://static.springsource.org/spring/docs/3.0.0.RC3/reference/html/ch05s07.html

모든 것이 설명 :

여기 봐주세요.

스테파노

관련 문제