struts2中配置全局日期类型转换器

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

posted @ 2017-02-13 16:49  hoey94  阅读(644)  评论(0编辑  收藏  举报