벨리데이션 관련 문의 드립니다.
- 작성자 :
- 송*식
- 작성일 :
- 2014-01-21 17:54:44
- 조회수 :
- 743
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하십니까
다름이 아니라 벨리데이션 처리 중에 korean이라고 있어서 그걸 사용하였더니
한글이 아니면 입력이 안되게 만들어 둔게 있습니다.
근데 한글이면 입력이 안되게 하는 벨리데이션이 있는지 어쭈어 보려 문의 드립니다.
없으면 어떻게 만들어서 써야 하는지 알려주시면 감사하겠습니다.
아 그리고 죄송하지만 저번에 드렸던 질문인데 지금 이 전자정부 프레임워크 사이트는 중복 썸밋을 막았던데
어떻게 한건지 알려주시면 감사하겠습니다.
인터넷에 떠도는 것들로 해보았으니 전혀 되질 않아 문의 드립니다.
다름이 아니라 벨리데이션 처리 중에 korean이라고 있어서 그걸 사용하였더니
한글이 아니면 입력이 안되게 만들어 둔게 있습니다.
근데 한글이면 입력이 안되게 하는 벨리데이션이 있는지 어쭈어 보려 문의 드립니다.
없으면 어떻게 만들어서 써야 하는지 알려주시면 감사하겠습니다.
아 그리고 죄송하지만 저번에 드렸던 질문인데 지금 이 전자정부 프레임워크 사이트는 중복 썸밋을 막았던데
어떻게 한건지 알려주시면 감사하겠습니다.
인터넷에 떠도는 것들로 해보았으니 전혀 되질 않아 문의 드립니다.
A
안녕하세요. 송호식님.
기존 validator-rules.xml 상에 korean 부분을 참조하셔서, english 규칙을 추가해 놓으시면 되실 것 같습니다.
다음과 같은 형태로 추가해 놓으시면 되실 것 같습니다.
<validator name="english"
classname="egovframework.rte.ptl.mvc.validation.RteFieldChecks"
method="validateEnglish"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.springframework.validation.Errors"
msg="errors.english">
<javascript><![CDATA[
function validateEnglish(form){
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oEnglish = new english();
for (x in oEnglish) {
var field = form[oEnglish[x][0]];
if (field.type == 'text' || field.type == 'textarea') {
if (trim(field.value).length==0 || !checkEnglish(field.value)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oEnglish[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
function checkEnglish(englishStr){
return /^[a-z][a-z\d]*$/i.test(englishStr);
}
]]>
</javascript>
참고로 egovframework.rte.ptl.mvc.validation.RteFieldChecks의 validateEnglish() 메소드는 이미 제공되고 있으며 위와 같은 규칙 정보와 메시지(errors.english)만 추가하시면 되실 것 같습니다.
이중 서브밋 방지는 "spring double submit"으로 검색해보시면 @SessionAttributes를 활용한 방법을 확인하실 수 있으실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
기존 validator-rules.xml 상에 korean 부분을 참조하셔서, english 규칙을 추가해 놓으시면 되실 것 같습니다.
다음과 같은 형태로 추가해 놓으시면 되실 것 같습니다.
<validator name="english"
classname="egovframework.rte.ptl.mvc.validation.RteFieldChecks"
method="validateEnglish"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.springframework.validation.Errors"
msg="errors.english">
<javascript><![CDATA[
function validateEnglish(form){
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oEnglish = new english();
for (x in oEnglish) {
var field = form[oEnglish[x][0]];
if (field.type == 'text' || field.type == 'textarea') {
if (trim(field.value).length==0 || !checkEnglish(field.value)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oEnglish[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
function checkEnglish(englishStr){
return /^[a-z][a-z\d]*$/i.test(englishStr);
}
]]>
</javascript>
참고로 egovframework.rte.ptl.mvc.validation.RteFieldChecks의 validateEnglish() 메소드는 이미 제공되고 있으며 위와 같은 규칙 정보와 메시지(errors.english)만 추가하시면 되실 것 같습니다.
이중 서브밋 방지는 "spring double submit"으로 검색해보시면 @SessionAttributes를 활용한 방법을 확인하실 수 있으실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.