struts2学习笔记(四)全局数据类型转换

struts2学习笔记(四)全局数据类型转换

ID:13365095

大小:42.50 KB

页数:5页

时间:2018-07-22

struts2学习笔记(四)全局数据类型转换_第1页
struts2学习笔记(四)全局数据类型转换_第2页
struts2学习笔记(四)全局数据类型转换_第3页
struts2学习笔记(四)全局数据类型转换_第4页
struts2学习笔记(四)全局数据类型转换_第5页
资源描述:

《struts2学习笔记(四)全局数据类型转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、struts2学习笔记(四)全局数据类型转换 前文讲到了局部数据类型转换,通过action类目录下的XAction-conversion.properties配置文件进行指定,在这种转换方法中,如果要对同一个Action类中多个数据类型进行转换,可在properties文件中多写几行,格式为:要转化的属性名=负责转化的Converter类(指定包名).注释符号为#但是如果有多个Action类都包含同一个数据类型且都要对该数据类型进行转换,那么按照局部类型转换的思想则需要配置多个XAction-conversion.properties文件,这样显然过于复杂且难于管理.在这种情况下就需要用到

2、全局数据类型转换了.具体操作如下:      将先前Action类目录下的XAction-conversion.properties文件中的内容注释掉      在WEB-INF/classes目录下新建一个xwork-conversion.properties文件(在MyEclipse中可直接新建在src文件夹下),写上:自定义类型的包名+类名=执行转换的类的包名+Converter类名,如:com.test.bean.Point=com.test.converter.PointConverter2.这样所在Action类在执行set和get方法时都要首先要读取classes 目录下的x

3、work-conversion.properties文件(如果存在),以确定当前的属性要不要执行类型转换,如果需要则调用properties文件指定的Converter类进行转换,这样就实现了全局的数据类型的转换.   在上一文中,我们写局部数据类型转换用到的PointConverter.java类是继承了DefaultTypeConverter类,在里面重写了publicObjectconvertValue(Mapcontext,Objectvalue,ClasstoType)方法,用if(Point.class==toType)和if(String.class==toType)来决定转

4、换的方向.而在实际的项目开发中一般不会这样来写,而是用PointConverter.java去继承StrutsTypeConverter类,在子类中重写StrutsTypeConverter类的publicObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)方法和publicStringconvertToString(Mapcontext,Objecto)方法.方法中参数context为上下文信息,convertFromString是将客户端发进来字符串形式的数据转化为自定义的对象,其参数values为一个字符串数组

5、,(如果是一个字符串则是长度为一的字符串数组,以字符串数组的形式写出是为了增加程序的通用性).convertToString方法是将对象转化为字符串并用于显示页面的输出.如此转换的类的代码:-------------------------------------------------------------------------------------------------//PointConverter2.javapackagecom.test.converter;importjava.util.Map;importorg.apache.struts2.util.StrutsTy

6、peConverter;importcom.test.bean.Point;publicclassPointConverter2extendsStrutsTypeConverter{   @Override   publicObjectconvertFromString(Mapcontext,String[]values,ClasstoClass){      Pointpoint=newPoint();      String[]paramValues=values[0].split(",");      intx=Integer.parseInt(paramValues[0]);   

7、   inty=Integer.parseInt(paramValues[1]);      point.setX(x);      point.setY(y);      returnpoint;   }   @Override   publicStringconvertToString(Mapcontext,Objecto){      Pointpoint=(Point)o;      intx=point.get

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。