Edit on GitHub << back to Annotations

# TypeConversion Annotation

This annotation is used for class and application wide conversion rules.

- Class wide conversion:

  The conversion rules will be assembled in a file called `XXXAction-conversion.properties` within the same package as the related action class. Set type to: `type = ConversionType.CLASS`

- Application wide conversion:

  The conversion rules will be assembled within the `struts-conversion.properties` or `xwork-conversion.properties` (deprecated) file within the classpath root. Set type to: `type = ConversionType.APPLICATION`

## Usage

The `TypeConversion` annotation can be applied at property and method level.

## Parameters

Parameter | Required | Default | Description
--- | --- | --- | ---
key | no | The annotated property/key name | The optional property name mostly used within TYPE level annotations.
type | no | ConversionType.CLASS | Enum value of ConversionType. Determines whether the conversion should be applied at application or class level.
rule | no | ConversionRule.PROPERTY | Enum value of ConversionRule. The ConversionRule can be a property, a Collection or a Map.
converter | DEPRECATED: either this or value |  | The class name of the TypeConverter to be used as converter.
converterClass | either this or value |  | The class of the TypeConverter to be used as converter. XWorkBasicConverter by default.
value | either converter or this |  | The value to set for ConversionRule.KEY_PROPERTY.

## Examples

     @Conversion()
     public class ConversionAction implements Action {

       private String convertInt;

       private String convertDouble;
       private List users = null;

       private HashMap keyValues = null;

       @TypeConversion(type = ConversionType.APPLICATION)
       public void setConvertInt( String convertInt ) {
           this.convertInt = convertInt;
       }

       @TypeConversion(converterClass = XWorkBasicConverter.class)
       public void setConvertDouble( String convertDouble ) {
           this.convertDouble = convertDouble;
       }

       @TypeConversion(rule = ConversionRule.COLLECTION, converterClass = String.class)
       public void setUsers( List users ) {
           this.users = users;
       }

       @TypeConversion(rule = ConversionRule.MAP, converterClass = BigInteger.class)
       public void setKeyValues( HashMap keyValues ) {
           this.keyValues = keyValues;
       }

       @TypeConversion(type = ConversionType.APPLICATION, property = "java.util.Date", converterClass = XWorkBasicConverter.class)
       public String execute() throws Exception {
           return SUCCESS;
       }
     }