第十三章 自定义类型转换器

自定义类型转换器:

1.创建转换器文件   cn.itcast.type.converter.DateTypeConverter 

2.注册转换器


1.cn.itcast.type.converter.DateTypeConverter 


package cn.itcast.type.converter;

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 DateTypeConverter extends DefaultTypeConverter {

	@Override
	public Object convertValue(Map<String, Object> context, Object value, Class toType) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
		try { 
			if(toType == Date.class){//当字符串向Date类型转换时
				String[] params = (String[]) value;// request.getParameterValues() 
				return dateFormat.parse(params[0]);
			}else if(toType == String.class){//当Date转换成字符串时
				Date date = (Date) value;
				return dateFormat.format(date);
			}
		} catch (ParseException e) {}
		return null;
	}
}


2.注册转换器

cn.itcast.action包下:

HelloWorldAction.java

HelloWorldAction-conversion.properties   名字前缀和action一致

birthday=cn.itcast.type.converter.DateTypeConverter

birthday为Date(),当输入框输入生日20120102时,转换器将20120102转换成Date()格式,然后action接收转换后的birthday





你可能感兴趣的:(第十三章 自定义类型转换器)