在实际开发中其实我们很少去使用DefaultTypeConverter类来转换,大部分用的是StrutsTypeConverter,它是struts自带的实现了DefaultTypeConverter类。这里来简单介绍一下它的用法:
和局部类型转换一样就转换类变了一下
package com.zchen.struts.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.zchen.struts.bean.Point;
public class PointConverter2 extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Point point = new Point();
String[] str = (String[])values;//取得的值是一个数组(通用性考虑)
String[] paramValues = str[0].split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
return point;
}
@Override
public String convertToString(Map context, Object o) {
Point point = (Point)o;
int x = point.getX();
int y = point.getY();
String result = "[x="+x+" y="+y+"]";
return result;
}
}
很明显:
convertFromString()方法:说明从String类型转换成别的类型。
convertToString()方法:说明是从别的类型转换成String类型。
properties配置文件:也分全局和局部的。
局部:point=com.zchen.struts.converter.PointConverter(在PointAcion位置)
全局:com.zchen.struts.bean.Point=com.zchen.struts.aonverter.PointConverter (在src目录下)
在此延伸一下:接受的values不是String是字符串数组:所以看这样下
package com.zchen.struts.converter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.zchen.struts.bean.Point;
public class PointConverter3 extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
List<Point> list = new ArrayList<Point>();
for(String value:values){
Point point = new Point();
String[] paramValues = value.split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
list.add(point);
}
return list;
}
@Override
public String convertToString(Map context, Object o) {
List<Point> list = (List<Point>)o;
StringBuilder sb = new StringBuilder();
sb.append("[");
int number = 0;
for (Point point:list) {
++number;
int x = point.getX();
int y = point.getY();
sb.append(number).append("x=").append(x).append(" y=").append(y);
}
sb.append("]");
return sb.toString();
}
}
分享到:
相关推荐
struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 struts6 直接设置要进行类型转换的字段值 struts7 制作一个表单,对表单中的内容进行...
Struts的自定义转换器 public class LineConvertor extends StrutsTypeConverter{...}
输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在...
输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在...
输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在...
输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在...
7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第8章输入验证 146 8.1 验证程序概述 146 8.2 验证程序的配置 147 8.3 ...
7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第8章 输入验证 146 8.1 验证程序概述 146 8.2 验证程序的配置 147 8.3 Struts...
java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目java公司项目...公司项目java公司项目struts2.1的strutstypeconverter类型的转换.zip