Apache Struts 2 Documentation > Home > Guides > Core Developers Guide > Validation > conversion validator |
Field Validator that checks if a conversion error occured for this field.
<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>
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>