Controller에서 Validation 체크시 추가문의
- 작성자 :
- 이*준
- 작성일 :
- 2009-10-21 14:15:12
- 조회수 :
- 4,404
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
아래에서 질문한 BindingResult bindingResult 파라미터의 위치문제는 덕분에 잘 해결했습니다.
해서 validate()는 잘 태웠는데 중간에 타지 않는게 있어서 문의합니다.
[message-common_ko_KR.properties 파일설정]
errors.required={0} 은 필수 입력값입니다.
errors.minlength={0} 은 {1}자 이상 입력해야 합니다.
# validator check userVO #
userVO.gradeNm=직급명
userVO.userEnNm=사용자영문명
userVO.empNo=사번
[validator.xml 파일 설정]
<form-validation>
<formset>
<form name="userVO">
<field property="gradeNm" depends="required">
<arg0 key="userVO.gradeNm" />
</field>
<field property="empNo" depends="required">
<arg0 key="userVO.empNo" />
</field> <-- 여기까진 잘 적용됩니다.
<field property="userEnNm" depends="minlength"> <-- minlength 는 인자가 {0},{1}이렇게 두개인데 어떻게 설정하는 건가요?
<arg0 key="userVO.gradeNm" />
<arg1 key="userVO.userEnNm" />
</field>
</form>
</formset>
</form-validation>
[~Controller.java 에서 설정]
@RequestMapping(value = "/admin/user/inputUser.do", method = RequestMethod.POST)
public String insertUser ( @ModelAttribute("searchVO") UserDefaultVO searchVO
, UserVO userVO
, BindingResult bindingResult
, Model model
) throws Exception {
//validation code
beanValidator.validate(userVO, bindingResult);
if (bindingResult.hasErrors()) {
return "/admin/user/UbiUPortalAdminUserRegist";
}
...
}
[jsp 파일]
<tr>
<td>사번</td>
<td><form:input path="empNo"/> <form:errors path="empNo"/></td>
</tr>
<tr>
<td>사용자 영문명</td>
<td><form:input path="userEnNm"/> <form:errors path="userEnNm"/></td>
</tr>
<tr>
<td>사용자 직급코드-직급명(셀렉트박스로구현)</td>
<td><form:input path="gradeCd"/><form:input path="gradeNm"/> <form:errors path="gradeNm"/></td>
</tr>
정리하면 minlength validator는 properties에 "errors.minlength={0} 은 {1}자 이상 입력해야 합니다."
이렇게 {0},{1} 두개의 인자를 받는걸로 파악되는데 위에서도 표시했지만 validator.xml에서 어떻게 표시하는지 궁금합니다.
저는
<arg0 key="userVO.gradeNm" />
<arg1 key="userVO.userEnNm" />
이렇게 테스트해봤는데 작동하지 않네요.오류는 나지 않습니다.
해서 validate()는 잘 태웠는데 중간에 타지 않는게 있어서 문의합니다.
[message-common_ko_KR.properties 파일설정]
errors.required={0} 은 필수 입력값입니다.
errors.minlength={0} 은 {1}자 이상 입력해야 합니다.
# validator check userVO #
userVO.gradeNm=직급명
userVO.userEnNm=사용자영문명
userVO.empNo=사번
[validator.xml 파일 설정]
<form-validation>
<formset>
<form name="userVO">
<field property="gradeNm" depends="required">
<arg0 key="userVO.gradeNm" />
</field>
<field property="empNo" depends="required">
<arg0 key="userVO.empNo" />
</field> <-- 여기까진 잘 적용됩니다.
<field property="userEnNm" depends="minlength"> <-- minlength 는 인자가 {0},{1}이렇게 두개인데 어떻게 설정하는 건가요?
<arg0 key="userVO.gradeNm" />
<arg1 key="userVO.userEnNm" />
</field>
</form>
</formset>
</form-validation>
[~Controller.java 에서 설정]
@RequestMapping(value = "/admin/user/inputUser.do", method = RequestMethod.POST)
public String insertUser ( @ModelAttribute("searchVO") UserDefaultVO searchVO
, UserVO userVO
, BindingResult bindingResult
, Model model
) throws Exception {
//validation code
beanValidator.validate(userVO, bindingResult);
if (bindingResult.hasErrors()) {
return "/admin/user/UbiUPortalAdminUserRegist";
}
...
}
[jsp 파일]
<tr>
<td>사번</td>
<td><form:input path="empNo"/> <form:errors path="empNo"/></td>
</tr>
<tr>
<td>사용자 영문명</td>
<td><form:input path="userEnNm"/> <form:errors path="userEnNm"/></td>
</tr>
<tr>
<td>사용자 직급코드-직급명(셀렉트박스로구현)</td>
<td><form:input path="gradeCd"/><form:input path="gradeNm"/> <form:errors path="gradeNm"/></td>
</tr>
정리하면 minlength validator는 properties에 "errors.minlength={0} 은 {1}자 이상 입력해야 합니다."
이렇게 {0},{1} 두개의 인자를 받는걸로 파악되는데 위에서도 표시했지만 validator.xml에서 어떻게 표시하는지 궁금합니다.
저는
<arg0 key="userVO.gradeNm" />
<arg1 key="userVO.userEnNm" />
이렇게 테스트해봤는데 작동하지 않네요.오류는 나지 않습니다.
A
안녕하세요.. 이용준님..
이용준님과 같은 경우는 다음과 같이 validator.xml (실제 xml명을 틀릴 수 있음)
<field property="userEnNm" depends="minlength">
<arg0 key="userVO.userEnNm" />
<arg1 key="50" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>50</var-value>
</var>
</field>
순서대로 arg0은 대상을 지정하시면 되고 (message파일로 정의) 두번째 arg1은 몇 자를 나타내시면 됩니다. (여기까지는 메시지 처리 부분)
다음으로 실제 처리를 위해 var를 위처럼 지정하시면 됩니다.
그럼.. 남은 하루도 즐거운 하루 되십시오.
감사합니다..
이용준님과 같은 경우는 다음과 같이 validator.xml (실제 xml명을 틀릴 수 있음)
<field property="userEnNm" depends="minlength">
<arg0 key="userVO.userEnNm" />
<arg1 key="50" resource="false" />
<var>
<var-name>minlength</var-name>
<var-value>50</var-value>
</var>
</field>
순서대로 arg0은 대상을 지정하시면 되고 (message파일로 정의) 두번째 arg1은 몇 자를 나타내시면 됩니다. (여기까지는 메시지 처리 부분)
다음으로 실제 처리를 위해 var를 위처럼 지정하시면 됩니다.
그럼.. 남은 하루도 즐거운 하루 되십시오.
감사합니다..