自定义类型转换器
// ?birthday=2008-10-10
f
.action
private Date birthday;
set\get 方法
如果参数是2008-10-10格式的日期,类型转换不会出错
但是如果参数是20081010格式的日期,就需要类型转换器
struts2有两种类型“ 类型转换器 ”
局部 只能对action中的某个属性进行类型转换
全局
----------------
类型转换器 ---类
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class DateTypeConverter extends DefaultTypeConverter
{
public Object convertValue(Map<String,Object> context, Object value, Class toType){
//return super.convertValue( context, value, toType );
SimpleDateFormate 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;
}
}
}
-------------------
将上述的转换器定义为局部转换器并注册,它只能对该actionName的类的某些属性进行转换。。。。
命名规则:
ActionClassName-conversion.properties
content:
birthday = cn.itcast.type.converter.DateTypeConverter