blob: 5f42510fbd3b8fee37346538a5295595cdd5cf64 [file] [log] [blame] [view]
---
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>
```