CRUD 액션이있는 Action 클래스가 있고 ActionSupport 클래스에서 제공 한 validate() 메소드를 재정의했습니다.Struts2의 특정 Action 메소드 유효성 확인
질문 : 업데이트에 대해서만 유효성 검사를 실행하고 작업을 만들려면 어떻게해야합니까?
하나의 가능한 해결책은 새로운 Action 클래스에서 & 업데이트를 생성하는 것입니다.하지만이 경우 다른 해결책이 있는지 알고 싶습니다.
감사합니다. Roberto
CRUD 액션이있는 Action 클래스가 있고 ActionSupport 클래스에서 제공 한 validate() 메소드를 재정의했습니다.Struts2의 특정 Action 메소드 유효성 확인
질문 : 업데이트에 대해서만 유효성 검사를 실행하고 작업을 만들려면 어떻게해야합니까?
하나의 가능한 해결책은 새로운 Action 클래스에서 & 업데이트를 생성하는 것입니다.하지만이 경우 다른 해결책이 있는지 알고 싶습니다.
감사합니다. Roberto
저는 두 가지 옵션이 유효합니다 : 유효 액션 메소드를 새 액션으로 (말한대로) 리팩토링하거나 프로그래밍 방식 유효성 검사 (선언적 대신)로 전환한다고 생각합니다. 기본적으로 업데이트/생성 방법 내에서 myvalidate()
으로 전화하고 오류가있는 경우 INPUT
을 반환하십시오.
구성 파일에 제외를 추가하여 다른 방법을 제외 할 수 있습니다. 당신은 인터셉터의 스트럿츠 defaultStack를 사용하는 경우
<interceptor-ref name="validation">
<param name="validateAnnotatedMethodOnly">true</param>
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
, 당신은 이미 다시, 취소, 또는 검색, 입력라는 방법에서 유효성 검사를 제외한다.
모든 인터셉터 스택을 기본으로 설정하는 것이 좋습니다 (모든 액션에 대한 기본값이므로 각 액션에 대해 이러한 사항을 다시 정의 할 필요가 없습니다). 당신에게 적합한 struts-default.xml의 예제 스택을 기반으로하고, 유효성 검사와 워크 플로에 대한 인터셉터 -ref를 편집하십시오 (밀접하게 관련되어 있습니다 - 워크 플로 인터셉터는 작업을 건너 뛰고 "입력" 검증 오류가있는 경우 조치 - 메소드 제외가 일치해야합니다.
현재 프로젝트에서 * Form 및 * Input에 대한 예외를 추가 했으므로 유효성 검사가 기본적으로 시작되지만 쉽게 피할 수 있습니다. 호출하는 동작 메서드가 Form 또는 Input으로 끝나야합니다. .
실수로 실수를했을 때 유효성 검사를 실행하지 않으려면 오류가 발생하여 즉시 조치를 취할 수 있기 때문에 일반적으로 유효성 검사를 실행하고 예외를 정의하는 것이 좋습니다) .. 실수를하고 확인 이 실행되지 않으면이 실행되지 않습니다. 이것은 자동으로 실패합니다.
당신은 또한 검증하지 않을 방법과 @SkipValidation 주석을 시도해 볼 수도 있습니다 : 나는 두 번째 옵션에 들어갑니다 결국
@SkipValidation
public String yourMethod(){
...
return SUCCESS;
}
, 감사 – Roberto