关闭

struts2中的类型转换

102人阅读 评论(0) 收藏 举报
分类:

在struts2中,常见的数据类型都会自动进行类型转换,但是某些特殊的类型转换,当使用量很大时,我们可以使用struts2中的自定义类型转换,实现步骤如下:

1)编写类型转换器--继承StrutsTypeConvert类

2)编写xwork-conversion.properties的配置文件,并放在项目src目录下,内容为: 要转换的类型=类型转换器 

具体实现方式代码如下;

我们以坐标类型为例的类型转换器

public class PointConvert extends StrutsTypeConverter{
	/**
	 * context:是ActionContext
	 * values:要进行类型转换的字符串数组
	 * toClass:被转换的类型
	 * 
	 * 将表单提交的字符串数据转换为自定义数据类型
	 */
	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		String value = values[0];
		Point point = new Point();
		String x = value.substring(1,value.indexOf(","));
		String y = value.substring(value.indexOf(",")+1,value.length()-1);
		point.setX(Integer.parseInt(x));
		point.setY(Integer.parseInt(y));
		System.out.println(x+"---"+y);
		return point;
	}
	
	/**
	 * context:是ActionContext
	 * o:要转换的对象
	 * 将自定义数据类型转换为字符串数据显示在前台--通过ognl表达式将会使用该方法进行转换
	 */
	@Override
	public String convertToString(Map context, Object o) {		
		Point point = (Point)o;
		String value = "("+point.getX()+","+point.getY()+")";
		return value;
	}
}
xwork-conversion.properties的配置如下:

实体类包名.Point=转换器包名.PointConvert



0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3921次
    • 积分:167
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档