默认转换
Struts2内建了所有String类型到基本类型及其封装类型的转换,String转Date,String转数组(数组元素默认为String),String转集合(转为ArrayList,并封装所有字符串)
自定义转换
通过重写DefaultTypeConverter的convertValue(当然也可以继承它的子类StrutsTypeConverter)完成双向转换,如下所示:
public class MyConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
//首先需要对toType的类型进行转换
if(toType == XXX.class){
//经过一系列对value的操作,返回想要的类型
return XXX;
}
else if(...) {...}
}
}
需要注意的是value总为一个字符串数组,当只有一个请求参数时,该请求数组长度为1
当我们实现了一个转换器类时,还需要对其进行注册,注册又分为局部类型转换器、全局类型转换器
对于局部类型转换器,需要在对应的XXXAction-conversion.properties文件中进行注册:
属性名=转换器实现类
对于全局类型转换器,需要在xwork-conversion.properties文件中进行注册:
XXX.XXX.XXX.domain=转换器实现类