Struts2的类型转换器

典型的一个例子,
你想把你jsp页面输入的String类型的2011-11-26或者20111126提交到后台,然后转换成java.util.Date类型,该怎么做?

第一步写个类型转换器(DateConvertUtil)类的名字自己定义
定义转换器的步骤
继承DefaultTypeConverter
覆盖convertValue方法
@Override
public Object convertValue(Map<String, Object> context, Object target,
Member member, String propertyName, Object value, Class toType) {
SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
try {
if(toType==Date.class){
String[] params=(String[])value;
return format.parse(params[0]);
}else if(toType==String.class){
Date date=new Date();
return format.format(date);
}
} catch (Exception e) {

}
return null;
}

只要覆盖convertValue方法,你的类型转换器就算制定了

第二步 用

1如果你只想把某一个类中的date转型,那只要注册局部转换器
步骤:
1局部类型转换器
建一个-conversion.properties的文件在要转换的类下,假如这里有person类的date2要使用类型转换器
则在Person类下建一个Person-conversion.properties的文件,文件类容就放你要转换的类型

date2=com.test.util.DateTypeConverter


如果你想要整个项目的date类型都这样做,那就注册全局类型转换器
2全局类型转换器注册
在WEB-INF/classes下放置xwork-conversion.properties文件,在里面的类容
打转换的类型=类型转换器的全名
java.util.Date=com.test.util.DateTypeConverter

你可能感兴趣的:(struts2)