昨天看了Struts2的类型转换,大致的意思就是在前端JSP页面输入的资料,通过Struts2的作用。在对应的Action里面我们可以得到我们想要的资料类型。
Struts2的类型转换是基于OGNL表达式的,之后要我们把HTML输入想明明为合法的OGNL表达式,就可以充分利用Struts2的类型转换机制了。Struts2的类型转换包含内建的类型转换和扩展的类型转换。
内建的boolean和Boolean、char和Character、int和Interger、long和Long、float和Float、double和Double、Date、數組、結合。具体意思就是说。如果在前端Jsp的html或者Struts2的标签定义了name。并且在后端的Action里面有对应的get/set方法。如果后端get/set的属性你定义为上述的类型。则Struts2就会自动转换成你需要的类型。并且自动给你赋值到后端的属性。至于上述的数组的意思就是如果前端定义有两个输入框相同的name。则在后段可通过一个数组的形式接收前端对应两个输入框对于的值。当然数组里面值类型可自行定义。当然如果你在后端定义的类型为int。前端页面输入的是字母。提交后则Struts2则会通过验证拦截器,提示你输入的为invalid。
自定义类型转换器的意思是,我们可以通过自己撰写类型转换器,将页面的内容转换为我们需要的类型。可以转换为一个JavaBean,也可以转换为其它任何你可想到的类型。比如,页面有一个邮件地址输入框。用户可输入多个邮件地址,不同邮件地址用逗号隔开。这个我们就可自定义类型转换器。将页面输入的邮件地址转换为一个邮件的数组、Vector、hashmap或者其它。类型转换器必须实现TypeConverter这个接口。然后通过复写convertValue方法来完成类型转换。也就是说这个方法返回的结果就是我们自己撰写代码转换后的结果。当然就包含两个部分,一个是页面值向Action里面类型的转换,另一个就是Action里面的值向页面显示值转换的代码撰写。Struts2为了方面我们自定义类型转换器,特提供了实现TypeConverter的子类,供我们继承来更方便的撰写。他们是DefaultTypeConvert和StrutsTypeConvert。StrutsTypeConvert将两种不同方向转换放到了不同的方法里。看起来就更直观和简单了。
自定义类型转换器可以作用于一个Action,也可作用于全局的Action里面名字相同的属性,具体作用方式就是用户在撰写完自定义类型转换器后,通过新增ActionName-Conversion.properties(作用于一个Actiong,里面设定为propertName=类型转换器类)和xwork-Conversion.properties(作用于全局,如设定Action类名(包含包名)=类型转换器(包含包名))。
以上为学习类型转换器的一点心得。
分享到:
相关推荐
关于struts2的类型转换的处理方法。
struts2类型转换和国际化 根据自己所做实例 详细介绍
struts2类型转换 http://d.download.csdn.net/down/504226/sunrain_gao
struts2 类型转换 数据校验
struts2类型转换机制
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
这是一个关于struts2的类型转换 以及 拦截器 还有校验的例子
NULL 博文链接:https://azrael6619.iteye.com/blog/415106
自己用struts2写的一个简单的局部数据类型转换实例,适合初学者
NULL 博文链接:https://cdxs2.iteye.com/blog/1931878
服务器可以接收到的来自用户的数据只能是字符串或者是字符串数组,而在服务器上的对象中 ,这些数据往往有多种不同的类型,如日期(Date) 整数(int) 浮点数... 要实现 上述的转换 ,Struts2中 提供了 converter。
配合博文:http://blog.csdn.net/u011638419/article/details/41276445
可以详细了解struts2的流程,便于学习和研究struts2,大家可以交流学习。
Struts2处理类型转换错误,全局处理,如处理时间转换错误
软件硕士张龙老师,对Struts2类型转换器的说明源代码,以及批量插入数据的源代码,不改动任何代码的情况下进行类型转换。
这是一个struts2的类型转换器的案例,主要是写的如果将一个20110202这种类型的日期格式进行转换!
使用struts2提供的转化器,实现Date类型的数据转换
适合struts2入门使用,主要是struts拦截到的数据类型转换的问题