Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Validation > conversion validator
Added by tm_jee, last edited by Ted Husted on Sep 03, 2006  (view change)

Description

Content pulled from external source. Click here to refresh.

Field Validator that checks if a conversion error occured for this field.

Parameters

Content pulled from external source. Click here to refresh.

  • fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required

Examples

Content pulled from external source. Click here to refresh.
<pre>
    <!-- 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>
</pre>

Repopulating Field upon conversion Error

Content pulled from external source. Click here to refresh.

The capability of auto-repopulating the stack with a fake parameter map when a conversion error has occurred can be done with 'repopulateField' property set to "true".

This is typically usefull when one wants to repopulate the field with the original value when a conversion error occurred. Eg. with a textfield that only allows an Integer (the action class have an Integer field declared), upon conversion error, the incorrectly entered integer (maybe a text 'one') will not appear when dispatched back. With 'repopulateField' porperty set to true, it will, meaning the textfield will have 'one' as its value upon conversion error.

Content pulled from external source. Click here to refresh.
<!-- myJspPage.jsp -->
<ww:form action="someAction" method="POST">
  ....
  <ww:textfield 
      label="My Integer Field"
      name="myIntegerField" />
  ....
  <ww:submit />       
</ww:form>
Content pulled from external source. Click here to refresh.
<!-- xwork.xml -->
<xwork>
<include file="webwork-default.xml" />
....
<package name="myPackage" extends="webwork-default">
  ....
  <action name="someAction" class="example.MyActionSupport.java">
     <result name="input">myJspPage.jsp</result>
     <result>success.jsp</result>
  </action>
  ....
</package>
....
</xwork>
Content pulled from external source. Click here to refresh.
<!-- MyActionSupport.java -->
public class MyActionSupport extends ActionSupport {
   private Integer myIntegerField;
   
   public Integer getMyIntegerField() { return this.myIntegerField; }
   public void setMyIntegerField(Integer myIntegerField) { 
      this.myIntegerField = myIntegerField; 
   }
}
Content pulled from external source. Click here to refresh.
<!-- MyActionSupport-someAction-validation.xml -->
<validators>
  ...
  <field name="myIntegerField">
     <field-validator type="conversion">
        <param name="repopulateField">true</param>
        <message>Conversion Error (Integer Wanted)</message>
     </field-validator>
  </field>
  ...
</validators>