2009年8月10日月曜日

Struts2 アノテーションによるフォーマット

アノテーションでない場合は、Struts2のドキュメントに記載あり。
http://struts.apache.org/2.0.14/docs/type-conversion.html

アノテーションの場合、Actionクラスに記述をする。

@Conversion()
public class SampleAction extends ActionSupport {
private Date tomorrow;

public Date getTomorrow() {
return tomorrow;
}
@TypeConversion(key = "tomorrow", converter = "sample.TimeConverter")
public void setTomorrow(Date tomorrow) {
this.tomorrow = tomorrow;
}
public String execute(){
return SUCCESS;
}
}

使用したConverterは、StrutsTypeConverterを継承して作成したものです。

public class TimeConverter extends StrutsTypeConverter {

@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
return new SimpleDateFormat("HH:mm").parse(arg1[0]);
}
@Override
public String convertToString(Map arg0, Object arg1) {
return new SimpleDateFormat("HH:mm").format(arg1);
}
}