Field Validator that checks if a conversion error occurred for this field.
fieldName
- The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required.<!-- 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>
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 useful 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
property set to true, it will, meaning the textfield will have ‘one’ as its value upon conversion error.
<!-- myJspPage.jsp --> <s:form action="someAction" method="POST"> .... <s:textfield label="My Integer Field" name="myIntegerField" /> .... <s:submit /> </s: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>