1-创建转换类
package com.demo.uitl;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class DateTypeConverter extends DefaultTypeConverter {
/* (non-Javadoc)
* @see com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter#convertValue(java.util.Map, java.lang.Object, java.lang.Class)
* value值为接收到的值比如 day = 2011-1-1,
*/
@Override
public Object convertValue(Map<String, Object> context, Object value, Class toType) {
// TODO Auto-generated method stub
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
try {
if(toType==Date.class){//当字符串向Date类型转换时
String[] params = (String[]) value;
return dateFormat.parse(params[0]);
}else if(toType==String.class){//当字符串向String类型转换时
Date date = (Date)value;
return dateFormat.format(date);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.convertValue(context, value, toType);
}
}
2-配置XXXXXX-conversion.properties,XXX代表action的类名
birthday=com.demo.uitl.DateTypeConverter
birthday 为action中的属性名,后面=为转换类的全路径。
注意:XXXXXX-conversion.properties放到XXXX的action的包内。
如果定义全局类型转换器:
1-把XXXXXX-conversion.properties 修改为:xwork-conversion.properties并且放到src目录下。
2-修改xwork-conversion.properties为:
java.util.Date=com.demo.uitl.DateTypeConverter