关闭

自定义类型转换器

210人阅读 评论(0) 收藏 举报

package com.ultratest.oa.system;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

public class DateConvertor extends DefaultTypeConverter {

 private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 /**
  * context是类型转换环境的上下文
  * value是转换的参数。随着转换方向的不同value的值也不同
  * toType是转换后的目标类型
  *
  * */
 @Override
 public Object convertValue(Map context, Object value, Class toType) {
  //当需要字符串向date类型转换时
  if (toType == Date.class) {
   String dateString = null;
   //获取请求参数
   String[] params = (String[]) value;
   //只处理请求参数的第一个数组元素
   dateString = params[0];
   try {
    return simpleDateFormat.parse(dateString);
   } catch (Exception e) {}
   return null;
  }
  else if (toType == String.class) {  //当需要日期类型向字符串转换时
   Date date = (Date) value;        //将需要转换的值强制类型转换成date类型
   return simpleDateFormat.format(date);
  }
  return null;
 }
}

 

类型转换器的注册:

局部类型转换器注册只针对某一个Action生效

在action文件中加入一个配置文件如:LoginAction-conversion.properties

全局类型转换器注册针对所有的Action都生效

在src下配置xwork-conversion.properties;

java.util.Date=com.ultratest.oa.system.DateConversion

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:126002次
    • 积分:2715
    • 等级:
    • 排名:第13907名
    • 原创:106篇
    • 转载:49篇
    • 译文:1篇
    • 评论:5条
    文章分类
    最新评论