现在接触的项目几乎都没有用struts2,所以相对来说还是不太熟悉.本篇只是感觉不错的亮点,记录一下.
类型转换器:(以日期类型转换为例)
public void DateTypeConverter extends DefaultTypeConverter{
//继承默认类型转换器后实现的一个转换的方法
/**
* 参数说明:context:暂时不用(也未深究)
* Object:需要进行类型转换的对象
* Class:需要被转换的类型
*/
public Object convertValue(Map<String,Object> context, Object value, Class toType ){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
if(toType == Date.Class){ //String类型转化为Date
/**
* 亮点1:数组类型接收====框架考虑到各种兼容性
* 有可能出现浮框类型,checkbox,多个对象进行传入
*/
String[] params = (String[])value;//request.getParameterValues
//只有一个对象传入
return dateFormat.parse(params[0]);
}else if(toType == String.Class){ //Date类型转换为String类型
Date date = (Date)value;
return dateFormat.format(date);
}
//亮点二:双向类型转换
}
}
总结 : 1,思维要缜密,多考虑各种情况兼容问题
2,逆向思维的必要性