您的位置:首页 > 编程语言 > Java开发

Struts2中自定义类型转换器

2012-09-16 13:17 513 查看
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<dfs.length;i++) {
try {
return dfs[i].parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
throw new TypeConversionException();
}

public String convertToString(Map arg0, Object object) {
Date date = (Date)object;
return dfs[0].format(date);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: