Struts2自定义类型转换与泛型应用解析

需积分: 0 0 下载量 45 浏览量 更新于2024-08-17 收藏 2.03MB PPT 举报
"定义转换类泛型-第5讲 Struts高级应用." 在Struts2框架中,类型转换是一项重要的功能,它确保了从用户界面(前端)传递到服务器(后端)的数据能够正确地被转化为应用程序可以处理的类型。本讲主要探讨Struts2中的类型转换,包括自动类型转换、基于OGNL的类型转换以及如何自定义类型转换器。 1. **为什么需要类型转换?** 在Web应用中,所有的输入和输出本质上都是字符串形式。然而,服务器端的业务逻辑通常需要处理各种不同的数据类型,如整数、日期、自定义对象等。因此,为了在后台正确地处理这些数据,必须将从前端接收到的字符串进行类型转换。 2. **Struts2的类型转换** - **基于XWork的转换**:Struts2的类型转换基础是XWork框架,它内置了一套自动类型转换机制。 - **自动类型转换**:对于基本类型(如String、int、Date等),Struts2能自动进行双向转换,即从字符串到相应的类型,再从类型回转到字符串。 - **内建的类型转换示例**:例如,Struts2可以将String转换为int,Date转换为String等。 - **基于OGNL的类型转换**:在Action类中定义复合类型的对象,通过OGNL(Object-Graph Navigation Language)在JSP页面中直接访问这些属性,Struts2会自动处理类型转换。 3. **Struts2的自定义类型转换** - **必要性**:虽然自动类型转换能覆盖大部分需求,但有时需要处理更复杂的情况,如将复合类型的变量转换为字符串,或将多个字符串组合成一个复合类型。 - **局部类型转换**:仅对特定Action的属性生效,需创建与Action同名的conversion.properties文件,并在其中指定属性名和转换类名。 - **全局类型转换**:适用于所有Action中特定类型的属性,需要在struts.xml配置文件中注册转换器。 **制作自定义类型转换器的步骤:** 1. **创建转换类**:对于局部转换,继承`DefaultTypeConverter`并重写`convertValue`方法,或者继承`StrutsTypeConverter`并覆盖`convertFromString`和`convertToString`方法。对于全局转换,同样需要实现这些方法,但配置过程不同。 2. **配置文件**:对于局部转换,需要在Action类的同一目录下创建conversion.properties文件,列出需要转换的属性及其对应的转换器类名。对于全局转换,需要在struts.xml中添加配置,指定转换器类。 Struts2的类型转换机制增强了其与用户交互的能力,通过自动和自定义的转换策略,使得数据在前端和后端之间无缝流转。理解和掌握这一机制对于开发高效、健壮的Struts2应用程序至关重要。