2013-05-22 2 views
0

Struts2 인터셉터 스택이 올바르게 이해되면 워크 플로 인터셉터는 유효성 검사 인터셉터에서 유효성 검사 실패가보고되었는지 확인합니다. 이하고 검증 실패가이 발견하면이 경우, 그것은 실행중인 작업이 struts.xml 구성에 정의 된 INPUT 결과가없는 경우 무슨 일이 Action.INPUTStruts 2 WorkFlow 인터셉터와 INPUT 결과가없는 작업

(기본적으로)를 반환? 이 INPUT을 반환하고, 그것을 위해 정의 된 결과 (도없고 일반 결과)가없는 경우

+0

이것은 시도해보기가 쉽지만 희망적으로는 결과가 정의되지 않는다는 오류가 표시되기도합니다. 글로벌 결과는 이들을 잡아 내고 적어도 사용자가 이해할 수있는 것을 제시하는 데 도움이 될 수 있지만, 발생하면 개발 수준의 버그입니다. –

답변

0

, 당신은

No result defined for type INPUT and action <action name>. 

같은 당신은 것입니다 일반적인 페이지를 정의 할 수 있습니다라는 오류 페이지를 얻을 수 있습니다 항상 'INPUT'으로 표시되지만 더 좋은 해결책은 validate() 메소드가있는 경우 일반적으로 돌아가려면 INPUT 결과를 정의하는 것이 좋습니다. 명시 적으로 유효성 검사를하지 않더라도 정수가 아닌 값이 정수 필드에 전달되는 것과 같은 결과가 발생할 수 있으므로이를 정의하는 것이 좋습니다.

0

INPUT 결과가 기본적으로 사용되며, 매개 변수를 설정하여 인터셉터 inputResultName으로 항상 무시할 수 있습니다.

<interceptor-ref name="workflow"> 
    <param name="inputResultName">error</param> 
</interceptor-ref> 

workflow interceptor에 대한 자세한 설명 및 참조.

위의 예에서 조치에 INPUT 결과가 없으며 조치 오류 또는 필드 오류가 발견 된 경우 결과는 ERROR입니다.

당신은 당신이 행동에 따라 결과의 이름을 변경 InputConfig 주석을 사용할 수 있습니다

또는

행동에 따라 결과의 이름을 정의 ValidationWorkflowAware 인터페이스를 사용할 수 있습니다

0

프로그래밍 방식

또는 곧 새로운 출시와 함께

Struts 버전 2.3.15의 경우 ValidationErrorAware 인터페이스를 사용할 수도 있으며, 에러에 대한 알림을받을 수 있으며 반환 된 결과 이름을 바꿀 수 있습니다 : https://issues.apache.org/jira/browse/WW-4071