public class DateTypeConverter extends DefaultTypeConverter {
//必須繼承DefaultTypeConverter類
//然後重寫convertValue方法
@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[]);
}else if (toType == String.class) {
//當Date轉換成字元串時
Date date = (Date) value;
return dateFormat.format(date);
}
} catch (ParseException e) {
// TODO: handle exception
}
return null;
}
}
編寫完類型轉化器之後,需要注冊。
1.注冊為局部類型轉化器:
在Action類所在的包下放置ActionClassName-conversion.properties檔案(建立一個普通檔案),ActionClassName是類名,後面的-conversion.properties是固定寫法。
在properties檔案中的内容為:
屬性名稱=類型轉化器的全類名
createtime = cn.itcast.conversion.DateConverter
2.将上面的類型轉換器注冊為全局類型轉換器:
在(WEB-INF/classes) src 下放置xwork-conversion.properties檔案。
在properties檔案中的内容為:
帶轉換的類型=類型轉化器的全類名
java.util.Date= cn.itcast.conversion.DateConverter