2011-01-12 4 views
0

하나의 작업 클래스 (및 양식)에서 처리 된 헤더와 별도로 편집 된 세부 정보가있는 하위 모델 모음이있는 모델 개체가 있습니다 액션 클래스 (및 폼). 헤더 파일을 저장할 때 전체 헤더의 개체 그래프 전체에 대한 유효성 검사를 수행 할 수 있기를 원합니다. 이미 내부와 같은 방문자를 선언 한 헤더의 -validation.xml : (우리는이 프로젝트에 XML 유효성 검사를 사용하는)Struts 2 : ValidationInterceptor + Visitor를 사용하여 하위 컬렉션 유효성 검사

<field name="details"> 
    <field-validator type="visitor" /> 
</field> 

세부 클래스는 또한 적절한 검증이 있습니다.

또 다른 그래프에서이 특정 개체 그래프를 만들거나 미리 채울 수도 있습니다. 그러나, 미리 채워지는 것은 일부를 남겨 둘 것이다. 필수 입력란은 비어 있습니다.

헤더의 유효성이 확인되는 것은 저장 메소드가 실행될 때 양식이 제출되기 때문입니다. 사실 세부 사항에 헤더 양식에 양식 요소가없는 경우에도 세부 사항의 유효성 검사를 강제로 수행 할 수 있습니까 (선언 한 방문자를 통해)?

DRY 상태로 유지하고 헤더 작업의 validate() 메소드에서 명시적인 유효성 검사를 수행하지 않아도됩니다.

답변

0

유효성 검사가 실행될 때 struts는 폼에서 생성 된 객체 만 볼 수 있습니다. 양식의 세부 정보 목록이 양식에서 어떤 식 으로든 참조되지 않으면 xml 유효성 검사는 유효성을 검사하기 위해 해당 정보를 볼 수 없습니다.

한 가지 가능한 솔루션은 숨겨진 필드를 통해 양식에 세부 정보를 포함하는 것입니다. 목록을 반복하고 각 세부 객체에 숨겨진 필드를 추가 할 수 있습니다. detail 객체의 각 데이터 멤버에 대해 숨겨진 필드를 원한다면 사용자 정의 데이터 변환기가 필요합니다.

그 외에도 XML 유효성 검사를 통해 전적으로이를 수행 할 수있는 방법이 없습니다.

관련 문제