struts2 之 struts2类型转换

时间:2023-03-09 08:11:59
struts2  之 struts2类型转换

1. 在struts2中,相比servlet来时,获取数据时,程序员没有进行手动的类型转换,类型转换工作都有struts2来完成处理,但对于自定义类型数据,struts2不会帮助我们完成类型转换工作。这个时候就需要程序员来完成类型转换。

2. 实现自定义类型转换器的步骤:

  (a). 定义一个类型转换器,该类继承StrusTypeConverter

public class PointConverter extends StrutsTypeConverter{

    /**
* 从字符串转换为指定的类型
* context 表示ActionContext
* values 要被转换的字符串
* toClass 要被转换的类型
*/
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
String value=values[0];
int x = Integer.parseInt(value.substring(1,value.indexOf(",")));
int y = Integer.parseInt(value.substring(value.indexOf(",")+1,value.length()-1));
Point p = new Point();
p.setX(x);
p.setY(y);
return p;
}
/**
* 使用ognl表达式将调用该方法
* 将指定的对象转换为字符串
* context actionContext
* o 要转换的对象
*/
@Override
public String convertToString(Map context, Object o) {
Point p = (Point)o;
return "("+p.getX()+","+p.getY()+")";
}
}

(b).添加全局配置文件xwork-conversion.properties放在src下:

#converted class=converter
cn.sxt.vo.Point = cn.sxt.converter.PointConverter