Data types and conversion

JavAjax will map incoming request parameters with method input variables using the @Param annotation, converting the value to match the type of the method input variable.
Managed data types are:
and their respective arrays.
Moreover, java.util.List<?> can be used. If the List type is a managed type, values will be converted and validated using the generic type of the list.

Conversion is the first validation step, which cannot be skipped.
Dates are converted using the patterns specified in the filter init param "date.formats". If no pattern can convert the value to a valid Date, the value is considered invalid.
Number types are converted using the locale specified in the filter init param "conversion.locale", if specified, otherwise the current user locale is used.

Custom Data types

Any object not managed by the Framework is, by default considered a bean, so JavAjax will try to populate it with values received from the request.
Custom data types can also be managed implementing the interface org.thinkjava.javajax.conversion.Converter, which can be configured in the Filter init param "custom.converters".
This way, JavAjax wil not try to populate your specific class as a bean, but will ask your custom Converter to generate an Object with the value received in the request.

i.e. To use a custom Date object, MyDate, you just need to implement the following Converter:
public class MyDateConverter implements Converter<MyDate> {
  @Override
  public MyDate convert(RequestContext context, Object value, String paramName) throws ValidationException {
    // your code here...
  }
}