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