Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Validation > conversion validator |

Apache Struts 2 Documentation
conversion validator
Edit Page Browse Space Add Page Add News
Added by tm_jee, last edited by Philip Luppens on Feb 10, 2007 (view change) show comment hide comment
Comment: Fixed macro url
View page history

# Description

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

# Parameters

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

# Examples

    <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

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.

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

    <!-- xwork.xml -->
    <xwork>
    <include file="xwork-default.xml" />
    ....
    <package name="myPackage" extends="xwork-default">
      ....
      <action name="someAction" class="example.MyActionSupport.java">
         <result name="input">myJspPage.jsp</result>
         <result>success.jsp</result>
      </action>
      ....
    </package>
    ....
    </xwork>

    <!-- MyActionSupport.java -->
    public class MyActionSupport extends ActionSupport {
       private Integer myIntegerField;

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

    <!-- 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>