| --- |
| layout: default |
| title: conversion validator |
| parent: |
| title: Validation |
| url: validation.html |
| --- |
| |
| # conversion validator |
| {:.no_toc} |
| |
| * Will be replaced with the ToC, excluding a header |
| {:toc} |
| |
| ## 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 |
| |
| ```xml |
| <!-- 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 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. |
| |
| ```html |
| <!-- myJspPage.jsp --> |
| <s:form action="someAction" method="POST"> |
| .... |
| <s:textfield label="My Integer Field" name="myIntegerField" /> |
| .... |
| <s:submit /> |
| </s:form> |
| ``` |
| |
| ```xmls |
| <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> |
| ``` |
| |
| ```java |
| /** MyActionSupport.java **/ |
| public class MyActionSupport extends ActionSupport { |
| |
| private Integer myIntegerField; |
| |
| public Integer getMyIntegerField() { |
| return this.myIntegerField; |
| } |
| |
| public void setMyIntegerField(Integer myIntegerField) { |
| this.myIntegerField = myIntegerField; |
| } |
| } |
| ``` |
| |
| ```xml |
| <!-- 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> |
| ``` |