自定义类型转换器:
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