ActionでのTypeConversion

AnnotationでTypeConverterを利用する場合

@TypeConversion

を ModelDriven の getModel または、プロパティのSetメソッドで指定する。

TypeConversionには type オプションがあり、
type=ConversionType.APPLICATION

type=ConversionType.CLASS
が指定できる。 APPLICATIONの場合は アプリケーションスコープでの設定となる。
しかし、APPLICATIONで指定するならAnnotationより、xwork-conversion.properties で指定したほうが良いだろう。

とりあえずAPPLICATIONの場合の指定方法

import com.opensymphony.xwork2.conversion.annotations.Conversion;
import com.opensymphony.xwork2.conversion.annotations.ConversionType;
import com.opensymphony.xwork2.conversion.annotations.TypeConversion;

@Conversion
public class UserAction extends ActionSupport implements ModelDriven<User> {
 :
@TypeConversion( type=ConversionType.APPLICATION, key="tutorial.CustomType", converter = "tutorial.MyCustomTypeConverter")
public User getModel() {
  return user;
}

こんな感じになる。

key で タイプを指定し、 converter で コンバーターのクラスを指定する。