Struts2接收参数教程:Action与Domain方法解析

需积分: 20 2 下载量 180 浏览量 更新于2024-09-16 收藏 120KB PDF 举报
"Java Struts2框架接收参数的不同方法,包括通过Action的属性和使用Domain Model来接收。" 在Java的Struts2框架中,有多种方式可以接收HTTP请求中的参数。以下是两种常用的方法: 1. 通过Action的属性接收参数 当你需要在Action类中直接处理请求参数时,可以在Action类中定义与请求参数名称对应的属性,并提供对应的getter和setter方法。例如,如果你有一个名为`name`的请求参数,你可以在Action类中定义一个`name`属性: ```java public class TestAction extends BaseAction { private static final long serialVersionUID = -7463970150000893325L; private String name; public void execute() { System.out.println(name + ":" + name); } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` 在这个例子中,当用户发送一个请求如`testAction?name=admin`,Struts2会自动调用setter方法将请求参数值设置到Action的属性中。 2. 使用Domain Model(模型对象)接收参数 如果请求参数较多或者参数对应的数据结构较为复杂,你可以创建一个专门的领域模型(Domain Model)类来存储这些参数。Action类中只需要持有该模型对象的引用,而不是直接包含所有参数。例如,假设有一个`ResBananRc`模型类,包含一个`name`属性: ```java public class ResBananRc { private String name; // getter and setter methods for name } ``` 然后在Action类中定义一个`ResBananRc`对象: ```java public class TestAction extends BaseAction { private static final long serialVersionUID = -7463970150000893325L; private ResBananRc resBananRc; public void execute() { System.out.println(resBananRc.getName()); } public ResBananRc getResBananRc() { return resBananRc; } public void setResBananRc(ResBananRc resBananRc) { this.resBananRc = resBananRc; } } ``` 用户发起的请求如`testAction?resBananRc.name=admin`,Struts2同样会自动进行参数绑定,将`name`值注入到`ResBananRc`对象的`name`属性中。 这两种方法都可以很好地处理HTTP请求中的参数,选择哪种取决于你的实际需求和项目结构。使用Action属性的方式适用于简单场景,而Domain Model更适用于需要管理复杂数据结构的情况。Struts2的这种自动参数绑定特性极大地简化了开发者的工作,使得代码更加简洁和易于维护。