봄날을 찾아 떠나는 여정의 끝에서..

2009/06/14

SimpleFormController에서 입력값 형식 체크

분류: SpringFrameWork — 태그:, — 동천홍 @ 2:54 am

이번 포스트는 SimpleFormController의 onBindAndValidate()에서 이메일 혹은 기타 입력값의 형식 체크 하여 값을 view로 넘겨주는 것입니다.

입력값 비교를 위해 Perl5Util을 사용했습니다.(이것에 대한 자세한 것은 더 알아봐야 겠습니다.ㅠㅠ)

jakarta-oro-2.0.8.jar를 lib폴더에 넣고 임포트 시킵니다.

import org.apache.oro.text.perl.Perl5Util;

준비가 끝났습니다. 이것만 있으면 되더군요…

정규식 표현을 상수로 정의 하였습니다.

아우 정규식 어려웠다는… (정규식에 대한 것은 검색해 보시고 이것저것 적용을 해보는 게…)

// 정규식 표현
 private static final String EMAIL_REGEXP = “/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i”;  <- 이메일 형식
 private static final String ENAME_REGEXP = “/^[a-zA-Z]+$*/”; <- 영문명만들어오게

 private static final String NAME_REGEXP =”/^[ㄱ-ㅣ가-힣]+$*/”; <- 한글만 입력받게

이렇게 선언을 해주고

onBindAndValidate() 함수안에서 사용을 합니다. 공백값과 함께 체크를 하기 위해서 onBindAndValidate()안에서 사용하면 공백처리등을 바로 할 수 있더군요.(신기했습니다–)

 

Perl5Util perl5Util = new Perl5Util(); 이렇게 생성을 하고

각각에 대해서

if(forumIct.getEmail() != null){
   if(!perl5Util.match(EMAIL_REGEXP, forumIct.getEmail())){
    errors.rejectValue(“email”, “errors.invalid”, new String[]{“email”}, “”);
   }
  }
  else {
   ValidationUtils.rejectIfEmpty(errors, “email”, “errors.required”, new String[]{“email”}, “”);
  }

 이렇게 체크를 했습니다. 공백이 들어왔을 때와 잘못된 값이 들어 왔을 때.. 구분해서 error에 값을 보내 주어야 해서.

다른 방법이 있다면 알려주세요.. 처음 해보는 거라서..^^;

 

spring framework는 controller를 잘 써야 하더군요.. 스프링 만쇄이~~

 

테마: Silver is the New Black. WordPress.com 제공.

팔로우

모든 새 글을 수신함으로 전달 받으세요.