【Struts2】:Struts2的类型转换

Struts2提供了强大的类型转换机制,支持基于OGNL表达式的HTTP请求参数转换。内置多种常见类型的转换器,并允许开发者自定义类型转换器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       所有的MVC框架,都需要负责解析HTTP请求参数,并将请求参数传递给控制器组件。此时,问题出现了:HTTP请求参数都是字符串类型的,但Java语言又是强类型的,因此MVC框架必须将这些字符串参数转换成相应的数据类型——这个工作是所有的MVC框架都应该提供的功能。

        表现层数据的流向以及所需的类型转换如下图所示:


        Struts2提供了非常强大的类型转换机制,Struts2的类型转换可以基于OGNL表达式,只要我们把HTTP参数(表单元素和其他get/post的参数)命名为合法的OGNL表达式,就可以充分利用Struts2的类型转换机制。
        除此之外,Struts2提供了很好的扩展性,开发者可以非常简单地开发出自己的类型转换器,完成字符串和自定义复合类型之间的转换(例如,完成字符串到Person实例的转换),如果类型转换中出现未知异常,类型转换器开发者无须关心异常处理的逻辑,Struts2的conversionError拦截器会自动处理该异常,并且在页面上生成提示信息。总之,Struts2的类型转换器提供了非常强大的表现层数据处理机制,开发者可以利用Struts2的类型转换机制来完成任意的类型转换。
Struts2內建的类型转换器
        对于大部分的常用类型,开发人员根本不用去管类型转换,Struts2可以完成大多数常用的类型转换。这些常用的类型转换时通过Struts2內建的类型转换器完成的,Struts2已经內建了字符串类型和如下类型之间的相互转换的转换器。
boolean和Boolean:完成字符串和布尔值之间的转换。
char和Character:完成字符串和字符之间的转换。
int和Integer:完成字符串和整型值之间的类型转换。
long和Long:完成字符串和长整型值之间的类型转换。
float和Float:完成字符串和单精度浮点值之间的转换。
double和Double:完成字符串和双精度浮点值之间的转换。
Date:完成字符串和日期类型之间的转换,日期格式使用用户请求所在Locale的short格式。
数组:在默认情况下,数组元素是字符串,如果用户提供了自定义类型转换器,也可以是其他复合类型的数组。
集合:在默认情况下,假定集合元素类型为String,并创建一个新的ArrayList封装所有的字符串。
        因为Struts2提供了上面这些类型转换器,如果需要把HTTP请求参数转换成上面的这些类型,则根本不用开发者进行任何的特殊处理。这也是所谓的框架的好处所在,将很多的基础服务为开发人员封装好,我们直接使用即可,大大的的提高了开发效率,也为开发人员及减轻了工作量。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值