Struts2 接收请求参数详解

需积分: 9 0 下载量 188 浏览量 更新于2024-08-18 收藏 4.09MB PPT 举报
"本文主要介绍了如何在Struts2框架中接收HTTP请求的参数,包括基本类型和复合类型的接收方式,并提到了Struts2框架的优势以及搭建开发环境的基本步骤。" 在Struts2框架中,接收请求参数是通过其内建的机制自动完成的,无需开发者手动处理。这一机制依赖于Struts2的模型驱动(Model Driven)和数据绑定(Data Binding)特性。 1. 基本类型接收请求参数: 当请求参数与Action类中的属性同名时,Struts2会自动将请求参数的值赋给对应的属性。例如,在`ProductAction`类中有一个`Integer id`属性,通过URL `http://localhost:8080/test/view.action?id=78`发送的请求,Struts2会调用`setId()`方法,将`id`参数的值78赋给`this.id`。这种方式适用于单个简单类型的参数。 2. 复合类型接收请求参数: 对于复杂的数据结构,如对象,Struts2同样能够处理。在上述例子中,`ProductAction`有一个`Product product`属性,Struts2会通过反射调用`Product`类的默认构造函数创建对象,然后将请求参数中与`Product`属性同名的部分赋值给这些属性。例如,如果请求中有`name`和`price`参数,它们会被分别设置到`Product`对象的相应属性中。但要注意,如果`Product`类没有默认构造器,Struts2将无法创建实例,从而无法接收请求参数。 实验建议包括: - 使用GET和POST方法发送请求,观察Struts2是否都能正确接收参数。 - 测试使用复合类型接收参数的情况,确认Struts2如何处理对象属性的赋值。 - 如果移除复合类型的默认构造器,测试Struts2是否还能成功接收请求参数,这将涉及Java反射机制和对象实例化的过程。 Struts2框架的优势在于: - **无侵入式设计**:它允许应用程序不依赖特定的API,如ServletAPI或StrutsAPI。 - **拦截器(Interceptor)**:支持AOP编程,便于实现如权限控制等功能。 - **类型转换器(Type Converter)**:自动将请求参数转换为所需类型,简化开发。 - **支持多种视图技术**:如JSP、FreeMarker、Velocity等,提高了灵活性。 - **输入验证(Input Validation)**:可针对特定方法进行验证。 - **国际化(Internationalization)**:提供了全局、包级、Action级的资源文件管理。 搭建Struts2开发环境通常包括以下步骤: 1. 获取必要的库文件,如Struts2的核心库和其他依赖的JAR文件。 2. 编写`struts.xml`配置文件,这是Struts2应用的核心配置,用于定义Action、结果类型等。 3. 在`web.xml`中配置Struts2的前端控制器(Front Controller),即`DispatcherServlet`,使得框架能处理HTTP请求。 在实际开发中,还需要设置相应的视图文件(如JSP)、编写Action类以及配置Action与视图之间的映射,以便Struts2能够正确处理用户请求并展示结果。