总结:struts2的类型转换,例如jsp界面中定义了出生日期birthday,在action处理类中定义了Date类型的属性birthday。而我们以前使用request.getParameter()方法从界面上获取的值都是字符串类型的。在界面点击提交之后,struts2从界面上获取了birthday的值之后发现在action中birthday被定义为Date类型的,那么struts2就试着把得到的值转换成Date类型的然后赋给action类里的这个属性。当它试图没有转换成功之后就会报错(例如你在界面上birthday那个框里输入了aaa,它根本不可能把aaa转换成Date类型的),下面是一个错误示例:(见附件图例),但是即使没有转换成功,这个值依然会赋给action里birthday这个属性,在结果页面上从action的birthday属性上取值依然会取到aaa
下面讲解坐标属性的类型转换(界面上有一个point输入框,action类里有一个Point point属性,这个属性是引用类型的,Point类里有x和y两个int型的属性,想要例如在界面上输入5,2然后分别把5和2赋给x和y):
重点查看附件类型转换示例(主要是以坐标点属性为示例):
附件中的Struts2TypeConversion.zip主要演示了对坐标单个(一个一个处理)类型转换处理以及区分基本的类型转换类DefaultTypeConverter和struts2自带的类型转换类StrutsTypeConverter的使用区别(一般情况下我们都用StrutsTypeConverter更好一点)。Struts2TypeConversion2.zip主要演示对坐标进行批量类型转换处理。Struts2TypeConversion3.zip是直接转换的情况,不需要用到转换器。(struts2类型转换就这3中情况)。
Struts2TypeConversion4.zip是全局类型转换示例(针对一个需要转换的实体只配置一次)。
重点说明:针对Struts2TypeConversion3.zip直接转换的情况,当把point.x和point.y提交到服务器的时候,服务器发现是以点分割的。那么它就去action里去找名字为point的属性,然后发现后面还有个x,那么它就又会去point里去找setX()方法,找到就吧x的值赋进去。
这种类型转换最简单了,不需要配置文件,也不需要引用任何转换器(它会一层一层自动往里找,直到找到最后一个属性的set方法,并把值赋进去)。这也是struts2的智能之处。
这里需要注意的是,这种转换之后在页面上显示的时候,必须要在相应的bean文件里重写toString()方法,否则结果不能在页面上正常显示。
针对Struts2TypeConversion4.zip是全局类型转换的情况,如果想使用全局类型转换器(就是此应用里遇到的所有词类型变量,都用此转换器来转换)。那么这个配置文件必须放到src下面,而且文件名字叫xwork-conversion.properties(必须是这个)
配置文件里的等号左边是需要转换的类型,右边是所使用的转换器名称
- 大小: 28.5 KB
- 大小: 21.6 KB
分享到:
相关推荐
关于struts2的类型转换的处理方法。
struts2类型转换和国际化 根据自己所做实例 详细介绍
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
这是一个关于struts2的类型转换 以及 拦截器 还有校验的例子
struts2 类型转换 数据校验
Struts2处理类型转换错误,全局处理,如处理时间转换错误
自己用struts2写的一个简单的局部数据类型转换实例,适合初学者
struts2类型转换 http://d.download.csdn.net/down/504226/sunrain_gao
struts2类型转换机制
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
对于Struts1和Struts2中都讲到了自定义类型转换器。但是有些人可能对自定义类型转换器的运行原理不理解,这里进行简单介绍一下……
适合struts2入门使用,主要是struts拦截到的数据类型转换的问题
NULL 博文链接:https://cdxs2.iteye.com/blog/1931878
使用struts2提供的转化器,实现Date类型的数据转换