Struts2的类型转换器_自我学习

首先,要定义一个类用于类型转换,继承DefaultTypeConverter,重写convertValue方法

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

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

public class DateTypeConvert extends DefaultTypeConverter {

	@Override
	public Object convertValue(Map<String, Object> context, Object value,
			Class toType) {
		try {
			//context即上下文
			//value就是需要进行转换的值(数组)
			//toType为将要转换成的类
			String[] str = (String[])value;
			String s = str[0];
			SimpleDateFormat sm = new SimpleDateFormat("yyyyMMdd");
			if(toType == Date.class)
			{
				return sm.parse(s);
			}else if(toType == String.class)
			{
				Date date =  (Date)value;
				return sm.format(date);
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
}
定义好转换器之后就需要注册转换器。在action包下建立一个 actionName-convertion.properties文件注册,如 Date = com.test.upload,局部类型转换器配置文件前面为类名,后面为固定格式
全局类型转换器,全局类型转换器要求需要转换的参数都是一种格式
类型转换器定义与局部一样,唯一的区别是配置文件需要放在类路径src地下,且命名规则为xwork-convertion.properties

猜你喜欢

转载自alexshaw.iteye.com/blog/1819539