实现自己转换。
步骤一、实现自己的转换类(一般有三种方式)
第一种:继承 DefaultTypeConverter
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class MyConverter extends DefaultTypeConverter {
/**
* value 要转换的数值
* toType 要转换为什么类型
* 返回值为转换后的值
*/
@Override
public Object convertValue(Object value, Class toType) {
return super.convertValue(value, toType);
}
}
第二种:继承 StrutsTypeConverter类
public class MyConverter extends StrutsTypeConverter{
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
// TODO Auto-generated method stub
return null;
}
@Override
public String convertToString(Map arg0, Object arg1) {
// TODO Auto-generated method stub
return null;
}
}
TypeConverter 接口
import java.lang.reflect.Member;
import java.util.Map;
import com.opensymphony.xwork2.conversion.TypeConverter;
public class MyConverter implements TypeConverter{
@Override
public Object convertValue(Map<String, Object> paramMap,
Object paramObject1, Member paramMember, String paramString,
Object paramObject2, Class paramClass) {
return null;
}
}
步骤二、注册到action(三种方式)
第一种(局部):跟action放到同一个目录下起名必须有规则 例如:
userAction 定义一个其中的转换则转换的名字为 userAction-conversion.properties
userAction-conversion.properties的内容为:
p=cn.com.jit.converter.MyConverter //p为userAction中的属性(有get、set方法)后面的为实际定义的转换
第二种(全局):全部放到src根下 名字固定 例如:
userAction定义一个转换则名字必须为xwork-conversion.properties
cn.com.jit.model.Point=cn.com.jit.converter.MyConverter //=前面的为全路径 后面的为实际定义的转换
第三种(注解):这个很不常用(几乎不用)就不在说。