- 출처 : http://cafe.naver.com/richprogrammer.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1098 -
※ validation.xml 예제 - 시작
<?xml version="1.0" encoding="UTF-8">
<!DOCTYPE form-validation PUBLIC "–//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<global>
<!-- 반복적으로 사용되는 문자열을 상수 형태로 정의 -->
<!--우편번호 상수 123-456 형태-->
<constant>
<constant-name>postalCode</constant-name>
<constant-value>^\d{3}-^\d{3}$</constant-value>
</constant>
</global>
<formset>
<!--userInfoForm 폼 빈에 대한 유효성 검증 규칙—>
<!-- name : struts-config.xml 에서 지정한 ActionForm의 이름 -->
<form name="userInfoForm">
<!--userInfoForm의 name(이름) 프로퍼티에 대한 검증 규칙 -->
<!-- property : ActionForm의 프로퍼티 -->
<!-- depends : validator-rules.xml 에 지정된 선언된 각 검증 규칙의 이름으로 ,
여기에 지정한 검증규칙을 통과해야만 유효성검사를 통과한 것이다.
검증규칙이 여러 개 필요할 때는 쉼표로 구분하며, 순서대로 검증이 실행된다. -->
<field property="name" depends="required">
<!-- arg는 에러메시지 출력시 {0},{1} .. 등에 채워줄 메시지의 키이다. -->
<arg key="userInfoForm.username"/>
</field>
<!--userInfoForm의 address(주소) 프로퍼티에 대한 검증 규칙 -->
<field property="address" depends="required">
<arg key="userInfoForm.address"/>
</field>
<!--userInfoForm의 postcode(우편번호) 프로퍼티에 대한 검증 규칙 -->
<!-- depends에 mask 규칙을 추가했다는 것은, 정규표현식문자열을 파라미터로 전송하여
유효성검사를 하겠다는 의미이다. (mask == 정규식사용)-->
<field property="postcode" depends="required,mask">
<!-- msg 태그 : validator-rules.xml 에 지정된 에러메시지가 아닌
다른 에러메시지를 사용하기 위해 지정한다 -->
<!-- msg 태그 내의 name : 에러메시지를 별도 지정할 검증규칙의 이름.
depends 속성에 있는 값들 중 하나여야 한다. -->
<!-- msg 태그 내의 key : 리소스번들의 어떤 키의 값을 에러메시지로 사용할 것인지 결정 -->
<!-- (예) mask 규칙에서 오류가 발생했을 때 출력할 메시지 지정 -->
<msg name="mask" key="userInfoForm.postcodeError"/>
<arg key="userInfoForm.postcode"/>
<!-- msg태그와 arg태그에는 각각 resource 속성을 지정할 수 있는데,
resource 속성을 false 로 하면, 리소스번들에서 키에 해당하는 값을 검색해서
가져오는 것이 아니라 key 속성에 지정된 문자열을 그대로 사용한다. -->
<!-- var 태그 : 유효성 검증기로 넘길 파라미터이다. 이 경우에는 mask 규칙에서 사용할
정규표현식 문자열을 전달하는데 사용되고 있다. -->
<var>
<var-name>mask</var-name>
<var-value>${postalCode}</var-value><!-- 상수 사용 -->
</var>
</field>
<field property="email" depends="required,email">
<!-- email rule 에 있는 에러메시지가 아닌 아래에서 key로 지정한 에러메시지를 출력한다. -->
<arg key="userInfoForm.email"/>
</field>
</form>
</formset>
</form-validation>
※ validation.xml 예제 - 끝
※ 리소스번들 프로퍼티 파일 예제 - 시작
# 메시지 출력시 상/하단에 출력될 머릿말과 꼬릿말
message.header=<ul>
message.footer=</ul>
# Error Messages
errors.required={0}(이)가 필요합니다.
errors.minlength={0}(은)는 최소한 {1} 문자 이상이어야 합니다.
errors.maxlength={0}(은)는 최대 {1} 문자 이하이어야 합니다.
errors.invalid={0}(이)가 유효하지 않습니다.
errors.byte={0}(은)는 byte 형이어야 합니다.
errors.short={0}(은)는 short 형이어야 합니다.
errors.integer={0}(은)는 integer 형이어야 합니다.
errors.long={0}(은)는 long 형이어야 합니다.
errors.float={0}(은)는 float 형이어야 합니다.
errors.double={0}(은)는 double 형이어야 합니다.
errors.date={0}(은)는 날짜형이 아닙니다.
errors.range={0}(은)는 {1]에서 {2} 사이 값이어야 합니다.
errors.creditcard={0}(은)는 유효하지 않은 신용카드 번호입니다.
errors.email={0}(은)는 유효하지 않은 이메일 주소입니다.
# Messages For Validation
userInfoForm.username=사용자명
userInfoForm.address=주소
userInfoForm.postcode=우편번호
userInfoForm.postcodeError={0}가 형식에 맞지 않습니다. \
우편번호는 123-456 과 같은 형식을 따릅니다.
userInfoForm.email=이메일주소
※ 리소스번들 프로퍼티 파일 예제 - 끝