'Validator Plugin 사용!'에 해당되는 글 1건

  1. 2009.10.21 Validator Plugin 사용!
반응형

Validator Plugin 사용! ( 톰캣 서버를 재시작 할 필요가 없다 )


-> 간단 버젼 : 공백 유무만 체크하기

-> 필수 수정파일 : validator.xml,  ActionForm( 폼빈 ), struts-config.xml, jsp파일

-> 참고 파일 : validator-rules.xml


<<  로그인시 아이디의 공백 유무 검사하기  >>

첫 페이지 이름 : login.jsp
폼 빈 이름 : LoginForm.java
액션빈 이름 : LoginAction.java


일단 struts로 동작하도록 모든 링크 설정을 한다..
그리고 나서 공백유무의 validation 시작~~


1. Form 자바파일의 상속을 ActionForm에서 ValidatorForm 으로 변경

 (예)   public class LoginForm extends ActionForm  을

          public class LoginForm extends ValidatorForm  으로 변경


2. validator.xml 작성

 <formset>

  <form name="loginForm">               struts-config.xml에서 등록한 FormBean의 name을 연결

   <field property="id" depends="required">        property는 검사할 곳(login.jsp 파일의 아이디 입력부분의 name값)
                                                                    required는 공백유무 검사하는 명령어

    <arg key="loginForm.id" />    key는 보여질 에러 메세지이름, 이 이름대로 MessageResources.properties에 등록
   
   </field>
 
  </form>
 
 </formset>


3. jsp 파일에 html:errors 처리 위해 한줄 추가하기

 <%@taglib prefix="html" uri="/WEB-INF/struts-html.tld" %>

 <html:errors />  입력하면 에러메세지 보여줌


4. 에러 메세지가 보이지 않을 때는 struts-config.xml 의 <action-mappings>안의 <action>의 validate를 true로 바꾸고 input="/돌아갈곳.jsp" 추가

(예) <action path="/login" name="loginForm" type="app.web.LoginAction" validate="true" input="/login.jsp">

 

[참고] 에러 메세지가 보여지는 방법


1. validation의 종류에 따라 validator-rules.xml 파일안의  해당 validator name의 msg 를 찾는다.


(예) validation의 종류가 required(공백체크) 라면 


------- validator-rules.xml 파일안에서 아래 msg="errors.required" 를 찾는다..

<validator name="required"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateRequired"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       javax.servlet.http.HttpServletRequest"
                  msg="errors.required"/>

------------


2. MessageResources.properties 파일에서 errors.required를 찾으면    errors.required={0} is required. 라고 되어있지~

요것이 보이는 메세지 이고,,, {0} 부분은 우리가 직접 셋팅 가능


3. {0} 부분은 validator.xml 내의 <arg key="loginForm.id" />  를 보면 loginForm.id라는 이름으로 등록되어있으므로

   이 이름대로 MessageResources.properties에 등록 되어 있는 것을 출력한다.

 loginForm.id 라는 이름은 사용자가 맘대로 바꿔줘도 상관없는 그냥 이름 임.. ㅋㅋㅋ


MessageResources.properties에

                                                   loginForm.id=ㅋㅋㅋㅋ 테스트다~                 

 라고 추가하면


최종 에러메세지는 


ㅋㅋㅋㅋ 테스트다~ is required.        이렇게 된다!!

출처 : http://www.underroom.com/?sort_index=regdate&order_type=asc&mid=java&page=2&document_srl=4485

Posted by 1010