2011-09-23 7 views
1

struts config xml에서 Validate = true를 지정하지 않고 struts 2 유효성 검사를 수행하는 방법이 궁금합니다. Struts 2 유효성 검사 프레임 워크를 사용하여 Struts 2 유효성 검사의 흐름을 알 수 있습니까?Struts 2 설명이 필요함

+1

"struts-default"를 확장하는 패키지를 정의하여 지정한 struts.xml을 사용하고 있습니다. 인터셉터가 어떻게 작동하는지 알 필요가 있습니다. 웹상에 많이 쓰여있는 가장 좋은 곳은 struts2-core-xxxjar에서 struts-default.xml을 열면 "struts-default "가 정의되고 다수의 인터셉터 스택이 있으며"defaultStack "이있는 곳의 맨 아래에 있습니다. 기본값으로 설정되어 있습니다. 인터셉터의 이름을 검색하면 사용할 수있는 작업을 이해할 수 있습니다. – Quaternion

답변

1

유효성 확인은 "validation" and "workflow" interceptors의 조합을 통해 이루어집니다. 불필요하기 때문에 Struts 2 설정 파일에는 "validate"설정이 없습니다.

+0

조금 더 설명해 주시면 감사하겠습니다. 나는 스트럿츠 2에 초보자이다. 나는 스트럿츠 1.2에 익숙하다. – user961532

+0

[S2 in a nutshell] (http://struts.apache.org/2.2.3.1/docs/nutshell.html). –

0

Struts 코어는 동작 방법이 실행되기 전에 규칙을 실행하여 유효성 검사를 수행하도록 응용 프로그램을 지원하는 유효성 검사 프레임 워크를 가지고 있습니다.

Struts 2 validation flow

작업 클래스는 도메인 데이터로 작동하고 그것의 액션 매핑 파일의 속성을 찾고는 theFileName - Validation.xml의 필드 유효성 검사기를 검색하고 모든 검증은 검증에 정의 된 필드에 따라 작동 .xml. 데이터의 불일치가 있으면 validation.xml에서 메시지를 선택하여 사용자에게 표시합니다.

샘플 직원-validation.xml :

<validators> 
    <field name="name"> 
     <field-validator type="required"> 
     <message> 
      The name is required. 
     </message> 
     </field-validator> 
    </field> 

    <field name="age"> 
    <field-validator type="int"> 
     <param name="min">29</param> 
     <param name="max">64</param> 
     <message> 
      Age must be in between 28 and 65 
     </message> 
     </field-validator> 
    </field> 
</validators> 

이 속성 이름과 나이 확인됩니다 직원 모델 및 요청에 대한 샘플 검증 파일입니다. 이름 입력란이 비어 있으면 유효성 검사가 이름 입력 상자 위에 "이름이 필요합니다"라는 오류 메시지를 표시합니다. 입력 한 연령이 29-64 한도를 벗어나는 경우 유효성 검사에서 오류가 "28 ~ 65 "를 입력하십시오.