一、定义转换类
package com.createyou.converter;
import java.util.Map;
import ognl.DefaultTypeConverter;
import com.createyou.bean.Point;
public class PointConverter extends DefaultTypeConverter{
@Override
public Object convertValue(Map context, Object value, Class toType) {
// TODO Auto-generated method stub
if(Point.class==toType){
Point point=new Point();
String[] str=(String[])value;
String[] strParam=str[0].split(",");
point.setX(Integer.parseInt(strParam[0]));
point.setY(Integer.parseInt(strParam[1]));
return point;
}
if(String.class==toType){
Point point=(Point)value;
int x=point.getX();
int y=point.getY();
String result="[x="+x+",y="+y+"]";
return result;
}
return null;
}
}
二、写properties(视全局或局部而定)
point=com.createyou.converter.PointConverter
三、写action。略
也可以使用strutstypeconverter
遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面
类型转换与输入校验的流程
1. 首先Struts2对客户端传来的数据进行类型转换
2. 类型转换完毕后再进行输入校验
3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)
注意:如果类型转换不成功,也同样要进行输入校验
正文完