Struts2是一个流行的Java web框架,它简化了MVC(模型-视图-控制器)架构的实现。在深入学习Struts2的过程中,了解并掌握类型转换是至关重要的,因为它是处理用户输入数据的关键环节。 类型转换的主要作用在于,由于用户在表单中提交的数据通常是字符串形式,因此需要将这些字符串转换为应用程序所需的特定数据类型,例如布尔值、数字、日期等。在传统的MVC框架中,这种转换通常需要手动进行,但在Struts2中,这一过程被自动化了。 Struts2内建了一套类型转换机制,可以自动将字符串转换为以下基本类型:boolean、char、int、long、float、double、Date以及它们对应的包装类。此外,它还可以处理数组和集合,如ArrayList、LinkedList等。例如,Struts2_5_2案例展示了如何将字符串数组转换为基本数据类型的数组。 Struts2还利用OGNL(Object-Graph Navigation Language)表达式进行复合数据类型的转换。这允许直接将用户请求参数转换为服务器端的对象或对象集合。通过OGNL,你可以将字符串直接转换为自定义对象,如在struts2_5_3_1案例中转换为一个User对象,或者转换为Map或List集合,如在struts2_5_3_2和struts2_5_3_3案例所示。 然而,有时内建的类型转换器可能无法满足所有需求,这时需要创建自定义类型转换器。自定义转换器通过实现Struts2的TypeConverter接口,或者继承DefaultTypeConverter类来实现。你需要重写`convertValue()`方法,根据实际需求进行转换。注册自定义类型转换器有三种方式:局部类型转换器、全局类型转换器和使用JDK1.5的注解。局部转换器在ActionName-conversion.properties中注册,全局转换器在xwork-conversion.properties中注册。StrutsTypeConverter是为处理更复杂情况而设计的,它提供了ConvertToString和ConvertFromString方法。 对于数组和集合属性的转换,可以通过继承StrutsTypeConverter并覆盖相应方法来实现。例如,struts2_5_4_3和struts2_5_4_4展示了如何处理数组和集合类型转换。 Struts2还支持集合类型转换的高级特性,如指定集合元素的类型,以及为Set集合指定索引属性,如在struts2_5_5_1和struts2_5_5_2案例中演示。 在类型转换过程中,错误处理是必不可少的。Struts2默认配置了一个名为conversionError的拦截器,当发生类型转换错误时,它会捕获错误并将其转换为ActionContext中的fieldError。要处理这些错误,可以继承ActionSupport类,并根据需要进行定制。struts2_5_6_1和struts2_5_6_2示例展示了如何处理并国际化输出类型转换错误,而struts2_5_6_3则展示了如何分别处理简单属性和集合属性的转换错误。 为了巩固所学知识,可以设计一个注册页面练习,该页面需要处理类型转换错误,并将注册信息存储到Oracle数据库中。在实践中应用这些类型转换和错误处理技巧,能够加深对Struts2的理解,并提升开发能力。
剩余19页未读,继续阅读
- 粉丝: 13
- 资源: 22
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0