`

struts2类型转换深入总结

阅读更多
总结: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是一个强大的Java ...总结来说,Struts2的类型转换、拦截器和校验机制是构建健壮、可维护的Java web应用程序的重要工具。理解并熟练运用这些概念,能让你更好地利用Struts2框架,提高开发效率,确保应用的质量。

    传智播客struts2.1源代码_自定义类型转换器

    自定义类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口,或者继承`org.apache.struts2.convention.converters.DefaultConversionProvider`基类,覆盖`convertValue()`方法。然后,通过在Action类或...

    第2讲 --Struts2的类型转换

    本讲将深入探讨Struts2的类型转换机制及其在实际开发中的应用。 首先,我们理解一下为什么需要类型转换。在HTTP请求中,所有的数据都是以字符串形式传递的。例如,用户通过表单提交的数据,服务器接收到的都是字符...

    struts2总结大全

    Struts2允许自定义类型转换器,以便在Action属性和请求参数之间进行数据转换。局部类型转换器针对特定Action类的某个属性,而全局类型转换器则对所有Action类生效。通过实现`Converter`接口或扩展`...

    Struts2输入校验总结

    1. **类型转换**:首先,Struts2框架使用类型转换器将HTTP请求中的字符串参数转换为相应的Java类型,如Integer、Date等,并将这些值设置为Action类的属性。 2. **异常处理与错误封装**:如果类型转换过程中遇到问题...

    struts2学习笔记(完美总结)——转自OPEN经验库

    在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    - **类型转换**:Struts2提供了一套强大的类型转换机制,能够将用户提交的表单数据自动转换成所需的对象类型。 - **国际化支持**:Struts2提供了完善的国际化(i18n)支持,可以通过配置文件轻松实现多语言切换。 #...

    struts2的转换器例子

    转换器在Struts2中扮演着数据类型转换的角色,确保用户输入的数据能够正确地与应用程序中的对象属性匹配。 在Struts2中,转换器主要用于处理用户输入,如从HTML表单提交的数据。这些数据可能以字符串形式到达,但...

    struts2源码分析总结

    `Dispatcher`还负责初始化插件,这些插件可以扩展Struts2的功能,例如类型转换、结果渲染等。 总的来说,Struts2的初始化过程涉及了日志、配置解析、ActionContext管理等多个重要环节,这些都为处理HTTP请求做好了...

    一篇文章搞定Struts2的类型转换

    本文将深入探讨Struts2的类型转换器以及如何实现自定义类型转换器。 **一、类型转换的意义** 在Java中,数据类型具有严格的定义,例如整数、浮点数、日期等。当用户通过Web表单输入数据时,这些数据以字符串形式...

    struts2输入校验总结

    - Struts2的类型转换器会尝试将HTTP请求参数转化为Action类中属性的对应类型。 2. **异常处理**: - 在转换过程中如果出现异常,Struts2会将异常信息存储在`ActionContext`中,`conversionError`拦截器会将这些...

    struts2视频自学总结

    同时,Struts2提供了多种方式获取请求参数,如`getParameter`和`getAttribute`,并且可以通过`DefaultConverter`和OGNL表达式来进行参数类型转换。 #### 转换器与国际化 为了处理复杂的数据类型,Struts2提供了...

    struts2校验器类型详解

    例如,在接收用户输入并尝试将其转换为某个特定的数据类型(如整型或日期类型)时,如果转换失败,则会触发类型转换错误。在配置此类校验器时,可以通过`fieldName`参数指定需要转换的字段名,并通过`message`参数...

Global site tag (gtag.js) - Google Analytics