[validator] 검증 순서는 어떻게 지정못하나요?
- 작성자 :
- 고*호
- 작성일 :
- 2015-11-12 09:02:45
- 조회수 :
- 777
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
<form-validation>
<global>
<constant>
<constant-name>user_id</constant-name>
<constant-value>
^(?=.*[a-zA-Z])(?=.*[0-9]).{6,10}$
</constant-value>
</constant>
<constant>
<constant-name>user_passwd</constant-name>
<constant-value>^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,12}$</constant-value>
</constant>
</global>
<formset>
<form name="mbrJoin">
<field property="user_name" depends="required">
<msg name="required" key="mbr.user_name"/>
</field>
<field property="user_id" depends="required,mask">
<msg name="required" key="mbr.user_id"/>
<msg name="mask" key="mbr.user_id_mask"/>
<var>
<var-name>mask</var-name>
<var-value>${user_id}</var-value>
</var>
</field>
<field property="passwd" depends="required,mask">
<msg name="required" key="mbr.passwd"/>
<msg name="mask" key="mbr.passwd_mask"/>
<var>
<var-name>mask</var-name>
<var-value>${user_id}</var-value>
</var>
</field>
<field property="passwd_chk" depends="required,twofields">
<msg name="required" key="mbr.passwd"/>
<msg name="twofields" key="mbr.passwd_chk"/>
<arg0 key="passwd_chk"/>
<arg1 key="passwd"/>
<var>
<var-name>secondProperty</var-name>
<var-value>passwd</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
위에 검증 소스 입니다.
field property="user_id" depends="required,mask" 부분을 보시면
required 와 mask 조건을 충족해야지 passwd로 넘어가게끔 작업하고 싶습니다.
검증 순서를 다음과 같이 하고 싶습니다.
[ user_name 필드의 required 확인 > user_id 필드의 required > user_id 필드의 mask > passwd 필드의 required 확인 > .. ]
근데 실제로 돌아가는화면을 보니
[ user_name 필드의 required 확인 > user_id 필드의 required > passwd 필드의 required 확인 > user_id 필드의 mask ]
와 같이 required 조건을 모두 충족한다음에야 mask 조건을 검사하고 있습니다.
[ user_name 필드의 required 확인 > user_id 필드의 required > user_id 필드의 mask > passwd 필드의 required 확인 > .. ]
와같은 검증 순서로 진행되게 하려면 어떻게 해야할까요??
<global>
<constant>
<constant-name>user_id</constant-name>
<constant-value>
^(?=.*[a-zA-Z])(?=.*[0-9]).{6,10}$
</constant-value>
</constant>
<constant>
<constant-name>user_passwd</constant-name>
<constant-value>^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,12}$</constant-value>
</constant>
</global>
<formset>
<form name="mbrJoin">
<field property="user_name" depends="required">
<msg name="required" key="mbr.user_name"/>
</field>
<field property="user_id" depends="required,mask">
<msg name="required" key="mbr.user_id"/>
<msg name="mask" key="mbr.user_id_mask"/>
<var>
<var-name>mask</var-name>
<var-value>${user_id}</var-value>
</var>
</field>
<field property="passwd" depends="required,mask">
<msg name="required" key="mbr.passwd"/>
<msg name="mask" key="mbr.passwd_mask"/>
<var>
<var-name>mask</var-name>
<var-value>${user_id}</var-value>
</var>
</field>
<field property="passwd_chk" depends="required,twofields">
<msg name="required" key="mbr.passwd"/>
<msg name="twofields" key="mbr.passwd_chk"/>
<arg0 key="passwd_chk"/>
<arg1 key="passwd"/>
<var>
<var-name>secondProperty</var-name>
<var-value>passwd</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
위에 검증 소스 입니다.
field property="user_id" depends="required,mask" 부분을 보시면
required 와 mask 조건을 충족해야지 passwd로 넘어가게끔 작업하고 싶습니다.
검증 순서를 다음과 같이 하고 싶습니다.
[ user_name 필드의 required 확인 > user_id 필드의 required > user_id 필드의 mask > passwd 필드의 required 확인 > .. ]
근데 실제로 돌아가는화면을 보니
[ user_name 필드의 required 확인 > user_id 필드의 required > passwd 필드의 required 확인 > user_id 필드의 mask ]
와 같이 required 조건을 모두 충족한다음에야 mask 조건을 검사하고 있습니다.
[ user_name 필드의 required 확인 > user_id 필드의 required > user_id 필드의 mask > passwd 필드의 required 확인 > .. ]
와같은 검증 순서로 진행되게 하려면 어떻게 해야할까요??
A
안녕하세요. 표준프레임워크 센터입니다.
요청하신 내용이 client-side측의 유효성 체크에 관한문의로 보이며, 기본으로 제공하는 룰셋으로는 요청하신 내용처럼 검증순서를 정하는 부분은 처리가 불가능합니다.
기본적으로 validator는 validation rule(required,mask 등)별로 묶여서 검증을 처리합니다. 별도의 순서를 정하여 처리를 해야되는 경우에는,
룰셋을 별도로 추가 구현해보시기 바랍니다.
하단링크는 주민등록번호 검증에 관한 추가 룰셋 내용으로 해당부분을 참고하셔서 구현해보시길 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:validation:add_rules_in_commons_validator
감사합니다.
요청하신 내용이 client-side측의 유효성 체크에 관한문의로 보이며, 기본으로 제공하는 룰셋으로는 요청하신 내용처럼 검증순서를 정하는 부분은 처리가 불가능합니다.
기본적으로 validator는 validation rule(required,mask 등)별로 묶여서 검증을 처리합니다. 별도의 순서를 정하여 처리를 해야되는 경우에는,
룰셋을 별도로 추가 구현해보시기 바랍니다.
하단링크는 주민등록번호 검증에 관한 추가 룰셋 내용으로 해당부분을 참고하셔서 구현해보시길 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:validation:add_rules_in_commons_validator
감사합니다.