2010-07-14 4 views
1

CRUD 액션이있는 Action 클래스가 있고 ActionSupport 클래스에서 제공 한 validate() 메소드를 재정의했습니다.Struts2의 특정 Action 메소드 유효성 확인

질문 : 업데이트에 대해서만 유효성 검사를 실행하고 작업을 만들려면 어떻게해야합니까?

하나의 가능한 해결책은 새로운 Action 클래스에서 & 업데이트를 생성하는 것입니다.하지만이 경우 다른 해결책이 있는지 알고 싶습니다.

감사합니다. Roberto

답변

3

저는 두 가지 옵션이 유효합니다 : 유효 액션 메소드를 새 액션으로 (말한대로) 리팩토링하거나 프로그래밍 방식 유효성 검사 (선언적 대신)로 전환한다고 생각합니다. 기본적으로 업데이트/생성 방법 내에서 myvalidate()으로 전화하고 오류가있는 경우 INPUT을 반환하십시오.

+0

, 감사 – Roberto

0

구성 파일에 제외를 추가하여 다른 방법을 제외 할 수 있습니다. 당신은 인터셉터의 스트럿츠 defaultStack를 사용하는 경우

<interceptor-ref name="validation"> 
    <param name="validateAnnotatedMethodOnly">true</param>     
    <param name="excludeMethods">input,back,cancel,browse</param> 
</interceptor-ref> 
0

, 당신은 이미 다시, 취소, 또는 검색, 입력라는 방법에서 유효성 검사를 제외한다.

모든 인터셉터 스택을 기본으로 설정하는 것이 좋습니다 (모든 액션에 대한 기본값이므로 각 액션에 대해 이러한 사항을 다시 정의 할 필요가 없습니다). 당신에게 적합한 struts-default.xml의 예제 스택을 기반으로하고, 유효성 검사와 워크 플로에 대한 인터셉터 -ref를 편집하십시오 (밀접하게 관련되어 있습니다 - 워크 플로 인터셉터는 작업을 건너 뛰고 "입력" 검증 오류가있는 경우 조치 - 메소드 제외가 일치해야합니다.

현재 프로젝트에서 * Form 및 * Input에 대한 예외를 추가 했으므로 유효성 검사가 기본적으로 시작되지만 쉽게 피할 수 있습니다. 호출하는 동작 메서드가 Form 또는 Input으로 끝나야합니다. .

실수로 실수를했을 때 유효성 검사를 실행하지 않으려면 오류가 발생하여 즉시 조치를 취할 수 있기 때문에 일반적으로 유효성 검사를 실행하고 예외를 정의하는 것이 좋습니다) .. 실수를하고 확인 이 실행되지 않으면이 실행되지 않습니다. 이것은 자동으로 실패합니다.

2

당신은 또한 검증하지 않을 방법과 @SkipValidation 주석을 시도해 볼 수도 있습니다 : 나는 두 번째 옵션에 들어갑니다 결국

@SkipValidation 
public String yourMethod(){ 
... 
return SUCCESS; 
}