2014-05-13 8 views
0

나는 다음 코드에서 예외봄 검증 rejectValue는

org.springframework.beans.NotReadablePropertyException: Invalid property 'entries[0].reason' of bean class [my.company.data.SDROrder]: Bean property 'entries[0].reason' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 

에게 얻을 우리는 이러한 데이터의 계층 구조를 가지고

public class OrderValidator implements Validator 
{ 

    @Override 
    public boolean supports(Class<?> clazz) 
    { 
     return Order.class.isAssignableFrom(clazz); 
    } 

    @Override 
    public void validate(final Object target, final Errors errors) 
    { 
     errors.rejectValue("entries[0].reason", "Wrong Reason"); 
    } 

} 

here

업데이트 1 : (210)

여기서 일하는 예제를 참조하십시오 그냥 명확히 할 수 있습니다. 문제는 내가 시도하는 것입니다 rejectValue 각 요소는 런타임에 특정 특성을 가지고 있지만 컴파일시에는없는 개체 컬렉션이있는 개체에 있습니다. Spring은 Bean의 속성을 사용하여이 필드를 확인하고 상속 된 속성을 찾을 수 없다. 문제는 : 상속 된 필드를 어떻게 든 해결하기 위해 Spring을 설명 할 수 있습니까?

답변

0

해결책을 찾았습니다. 트릭

org.springframework.validation.Errors.pushNestedPath(String) 

org.springframework.validation.Errors.popNestedPath() 

방법이다.

errors.pushNestedPath("entries[0]"); 
    errors.rejectValue("reason", "Wrong Reason"); 
    errors.popNestedPath(); 
:

올바른 검증은 다음과 같이 수행해야합니다