1.编写一个类,继承StrutsTypeConverter,实现其中的convertFromString和convertToString方法,该类如下:
package me.edu.utils; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class DateTypeConvetor extends StrutsTypeConverter{
// 创建一个DateFormat数组,其中放SimpleDateFormat的实例 DateFormat[] df = { new SimpleDateFormat("yyyy/MM/dd"), new SimpleDateFormat("yyyy-MM-dd"), new SimpleDateFormat("yyyy年MM月dd"), };
@Override public Object convertFromString(Map context, String[] values, Class toClass) { // values是页面传过来的字符串,遍历出每个SimpleDateFormat对values[0]进行格式化 for(int i=0;i<df.length; i++){ try {
// 如果抛异常就继续,知道转成功为止,如果遍历完毕仍然没有转换成功,将会执行代码体最下面的return null; return df[i].parse(values[0]); } catch (ParseException e) { continue; } } return null; } // 这个方法不需要实现,所以不用写 @Override public String convertToString(Map context, Object o) { return null; } }
2.注册转换类,具体操作如下:
在项目src下创建xwork-conversion.properties
在xwork-conversion.properties文件中添加如下信息:
java.util.Date=me.edu.utils.DateTypeConvetor(需要转换的类=自己定义的转换类)
3.注意:上面编写类只能完成1994-11-12 1994/11/12 1994年11月12 三种格式转换,如果都不能转换,会返回null