Struts2.1笔记(六):Struts2的 类型转换(续)

5.4全局类型转换器
格式:xwork-conversion.properties
与struts.xml放在同一个目录
其内容由多个“复合类型=对应的类型转换器”项组成,其中“复合类型”指定需要完成类型转换的复合类,
“对应类型转换器”指定所有指定类型转换的转换器。
5.5 基于Struts2的类型转换器
为了简化类型转换器的实现,Struts2提供了一个StrutsTypeConverter抽象类,这个抽象类是Default
TypeConverter类的子类。
下面是简化的转换器的代码

package com.test.converter; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter2 extends StrutsTypeConverter { public Object convertFromString(Map arg0, String[] values, Class arg2) { Point point = new Point(); String[] p = values[0].split(","); int x = Integer.parseInt(p[0]); int y = Integer.parseInt(p[1]); point.setX(x); point.setY(y); return point; } @Override public String convertToString(Map arg0, Object o) { Point point = (Point) o; int x = point.getX(); int y = point.getY(); String result = "x=" + x + " " + "y=" + y; return result; } }

5.6 集合属性的类型转换器
package com.test.converter; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter3 extends StrutsTypeConverter { public Object convertFromString(Map arg0, String[] values, Class arg2) { List<Point> list = new ArrayList<Point>(); for (String value : values) { Point point = new Point(); String[] p = value.split(","); int x = Integer.parseInt(p[0]); int y = Integer.parseInt(p[1]); point.setX(x); point.setY(y); list.add(point); } return list; } public String convertToString(Map arg0, Object o) { List<Point> list = (List<Point>) o; StringBuilder sb = new StringBuilder(); for (Point point : list) { int x = point.getX(); int y = point.getY(); sb.append("x=").append(x).append(" ").append("y=").append(y) .append(" "); } return sb.toString(); } }

你可能感兴趣的:(Struts2.1笔记(六):Struts2的 类型转换(续))