局部的配置如下:
(1)编写类型转换器
import java.util.Date; import java.text.SimpleDateFormat; import java.util.Map; import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter; public class DateTypeConversion extends DefaultTypeConverter { @Override public Object convertValue(Map<String, Object> context, Object value,Class toType) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); try{ if(toType==Date.class){ String [] dates = (String[]) value; return dateFormat.parse(dates[0]); }else if(toType==String.class){ Date date = (Date) value; return dateFormat.format(date); } }catch(Exception e){ e.printStackTrace(); } return null; } }
(2)将类型转换器与action进行关联
编写properties文件,文件名称必须是ActionClassName-conversion.properties。
eg:这里的Action名称是Test2Action,则对应的properties名称是:Test2Action-conversion.properties
配置文件内容是:
属性名称=类型转换器全类名
eg:
person.birthday = com.xss.type.conversion.DateTypeConversion
注意,此时的properties文件必须放在Action相同的目录下
eg:
全局类型转换:
(1)编写类型转换器,代码与局部类型转换一样。
(2)将类型转换器与数据类型关联。
编写properties文件,文件名为xwork-conversion.properties。
properties配置内容是:
数据类型=类型转换器全类名
eg:
java.util.Date = com.xss.type.conversion.DateTypeConversion
注意此时,properties文件必须放在classes文件下,
eg:
附加代码
import java.util.Date; public class Person { private String name; private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String toString(){ return name +" : "+birthday; } }