conversion validator
Description
Field Validator that checks if a conversion error occurred for this field.
Parameters
fieldName
- The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required.
Examples
<!-- 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>
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 totrue
.
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>
<struts>
....
<package name="myPackage" extends="struts-default">
....
<action name="someAction" class="example.MyActionSupport.java">
<result name="input">myJspPage.jsp</result>
<result>success.jsp</result>
</action>
....
</package>
....
</struts>
/** MyActionSupport.java **/
public class MyActionSupport extends ActionSupport {
private Integer myIntegerField;
public Integer getMyIntegerField() {
return this.myIntegerField;
}
@StrutsParameter
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>