List

화요일, 12월 01, 2015

Validator 처리



  • 화면 단에서 데이터를 입력하지 않거나, 잘못된 데이터를 입력시, 에러를 발생하는 것을 일반적으로 client에서 유효성을 체크한다 그러나 웹,해킹 등 여러가지 이유로 서버단에서도 체크할 경우가 발생하는데 이에 대한 처리를 spring framework에서는 지원하고 있다
  • Controller
    • String loginForm(VO v, Error error)
      • hasError : 전체적 에러 발생
      • rejectValue("에러 code값","코드값이 없을때 대체 내용")
  • Validator 처리 : implements Validator
    • public void validate(Object target,Error error
  • View단
    • <form:form commandName="모델이름">
      • <form:errors element="div"/>전체 에러내용표시
      • <form:errors path="email"/>해당항목의 에러 발생시 표시


  • 컨트롤러단

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Controller
public class C01_MultiLanCtrl {
    @RequestMapping("/language.do")
    public String multiLanform(@ModelAttribute("memberinfovo") MemberInfoVO mem, Errors errors){
        
        System.out.println(mem);
        
        //에러 여부 확인
        if(errors.hasErrors()){
            System.out.println("에러 발생");
        }
        if(mem.getId()!=null && mem.getId().trim().equals("")){
            errors.rejectValue("id","required""아이디나 입력하세요");
        }
        
        return "a01_novice/c01_MultiLan";
    }
}
cs


  • view 단
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<h2><spring:message code="regi"/></h2>
<form:form  commandName="memberinfovo">
<form:errors element="div"/>
<table>
   <tr><td><spring:message code="id"/></td>
           <td><form:input path="id"/><form:errors path="id"/></td>
   </tr>
        <input type="submit" value='<spring:message code="regbtn"/>'/>
      </td></tr>
</table>
</form:form>
cs

  • 화면 처리 내용

  • 작업과정
    • Ctrl => error 처리 => view 화면 출력및 error form 입력 => errorMessage
    • 파일 입력 =>
    • <form:errrors path= " ? " /> ? = form:input path : 에 들어갈 변수명과 같음
    • setXXX 에서 XXX 와같음


  • 임의로 에러를 줄수도 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//(error 객체, " path값""message file에 매핑된 값");
ValidationUtils.rejectIfEmptyOrWhitespace(error, "id""required");
if(shop.getPw().length()<5){
//("path값","message file에 매핑된 값")
error.rejectValue("pw""required");
}else{
if(shop.getPwck()!=shop.getPw()){
error.rejectValue("pwck""required");
}
}
if(shop.getPlist().length==0){
error.rejectValue("plist""required");
}
ValidationUtils.rejectIfEmptyOrWhitespace(error, "name""required");
ValidationUtils.rejectIfEmptyOrWhitespace(error, "gender""required");
ValidationUtils.rejectIfEmptyOrWhitespace(error, "address""required");
cs

  • error.properties 파일
1
2
3
4
5
6
7
8
required.id=id required
required.pw=pw required
required.pwck=pwck required
required.name=name required
required.plist=list required
required.gender=gender required
required.gender=address required
cs



댓글 없음:

댓글 쓰기