package converter;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import bean.Point;/** * 自定义类型转换器步骤 : * 1,创建转换器类,封装转换操作(String<->自定义类型) * 1)实现TypeConveter接口 * 2)继承自DefaultTypeConverter类 * 3)继承自StrutsTypeConveter抽象类 * 2,注册转换器 * 全局转换器 * 可转换所有Action中属性值。 * 在src下创建xwork-conversion.properties * 内容:类型名=转换器全路径名 * 局部转换器: * 为某一Action中属性值转换。 * action类同包中: * Action类名-conversion.properties * 内容:属性名=转换器全路径名 * */public class PointConverter extends StrutsTypeConverter{ /** * String->Object * @param val 字符串数组,其存储客户端请求参数 */ public Object convertFromString(Map context, String[] val, Class toType) { //获取客户端提交的坐标字符串 String pointStr = val[0]; //将字符串转换为Point对象 int x = Integer.parseInt(pointStr.split(",")[0]); int y = Integer.parseInt(pointStr.split(",")[1]); Point p = new Point(); p.setX(x); p.setY(y); return p; } /** * Object->String */ public String convertToString(Map context, Object object) { Point p = (Point)object; return "["+p.getX()+","+p.getY()+"]"; }}
package converter;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import com.opensymphony.xwork2.conversion.TypeConversionException;/***String<->Date**/public class DateConverter extends StrutsTypeConverter{ private DateFormat[] dfs = { new SimpleDateFormat("yyyy-MM-dd"), new SimpleDateFormat("yyyy年MM月dd日"), new SimpleDateFormat("yyyy.MM.dd"), new SimpleDateFormat("MM/dd/yyyy") }; public Object convertFromString(Map arg0, String[] val, Class arg2) { String dateStr= val[0]; for(int i=0;i