변환 Validator

Field Validator의 type을 변환(conversion) validator로 정의하면, field의 형변환에 대한 첵크를 제어할 수 있다. (역자: 클라이언트와 서버의 사이는 모두 String형이기 때문에 Bean에 값을 넣을 때 형변환이 일어난다.

파라메터

  • fieldName - validaiton을 시행할 필드명. 일반(Plain) Validator로 정의한 경우 필수.

예제

<!-- Plain Validator Syntax -->
<validator type="conversion">
    <param name="fieldName">myField</param>
    <message>Conversion Error Occurred</message>
 </validator>
  
 <!-- Field Validator Syntax -->
 <field name="myField">
    <field-validator type="conversion">
       <message>Conversion Error Occurred</message>
    </field-validator>
 </field>

변환 validation실패시, 입력치 유지하기

변환에 실패해서 입력화면으로 되돌아가면 해당 필드의 입력값이 클리어된다. 원래의 값을 유지하려면 repopulateField속성을 true로 정의하면 된다.

myJspPage.jsp
<s:form action="someAction" method="POST">
  ....
  <s:textfield 
      label="My Integer Field"
      name="myIntegerField" />
  ....
  <s:submit />       
</s:form>

struts.xml
<action name="someAction" class="example.MyActionSupport.java">
    <result name="input">myJspPage.jsp</result>
    <result>success.jsp</result>
 </action>

MyActionSuport.java
public class MyActionSupport extends ActionSupport {
   private Integer myIntegerField;

   public Integer getMyIntegerField() {
       return this.myIntegerField; 
   }

   public void setMyIntegerField(Integer myIntegerField) { 
        this.myIntegerField = myIntegerField; 
   }
}

validation.xml
<field name="myIntegerField">
   <field-validator type="conversion">
      <param name="repopulateField">true</param>
      <message>Conversion Error (Integer Wanted)</message>
   </field-validator>
</field>

원문: http://struts.apache.org/2.x/docs/conversion-validator.html
2009년 3월
허 련호(airless at funit.net)

Comments