Struts2 Action参数接收:属性、DomainModel与ModelDriven
下载需积分: 25 | DOC格式 | 65KB |
更新于2024-09-21
| 71 浏览量 | 举报
"Struts2框架允许Action类以多种方式接收请求参数,主要涉及Action的属性、DomainModel以及ModelDriven接口。以下是对这三种方法的详细说明:"
1. 使用Action的属性接收参数
- 定义:在Action类内部,声明一个与请求参数名称相匹配的私有属性,例如`private String userName;`,然后提供对应的getter和setter方法,如`public String getUserName(){}` 和 `public void setUserName(String userName){}`。
- 接收:当Struts2处理请求时,会自动调用setter方法将请求参数值赋给Action的属性。例如,如果URL中有`?userName=Magic`,Struts2会调用`setUserName("Magic")`。
- 发送:在JSP或其他视图层组件中,可以通过`user1!add`这样的Action方法引用,并在URL中以`userName=Magic`的形式传递参数。
2. 使用DomainModel接收参数
- 定义:创建一个独立的Model类,比如`User`,包含相应的属性和getter/setter方法。在Action类中,声明一个`User`类型的属性,但不需要手动创建对象,例如`private User user;`。
- 接收:Struts2会自动创建Model对象并调用setter方法填充属性,Action可以通过`user.getUserName()`来访问请求参数。
- 发送:在请求URL中,参数以`user2!add?user.userName=MGC`的方式传递,这里的`user`是Model对象的属性名,`userName`是Model类中的属性。
3. 使用ModelDriven接口接收参数
- 定义:让Action类实现`ModelDriven`接口,这个接口要求实现`getModel()`方法,返回Model对象。通常在Action类中会有一个Model类的实例,如`private User user = new User();`。
- 接收:Struts2会调用`getModel()`方法获取Model对象,然后自动填充参数,Action同样通过`user.getUserName()`访问参数。
- 发送:请求URL中的参数传递方式与使用DomainModel相同,即`user2!add?userName=MGC`。
在配置文件`web.xml`中,Struts2过滤器是必要的,它定义了Struts2的拦截器链,使得Action能够正确地接收和处理请求。示例配置如下:
```xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
这些配置确保了所有请求都会经过Struts2框架,使得Action可以利用上述方法接收参数。Struts2的这种灵活性使得开发人员可以根据项目需求选择最合适的方式来处理请求参数。
相关推荐

freegq_3000
- 粉丝: 0
最新资源
- JfreeChart折线图展示与Servlet封装数据DEMO分析
- AT89S51单片机控制PT100温度测量电路详解
- DOS版学生信息管理:双向链表的增删改查实现
- C#实现算术表达式解析器下载指南
- 易语言实现QQ空间自动留言功能教程
- VisualSVN Server 2.5.5版本发布,全面支持32位和64位系统
- MASM6.11软件包:32位汇编编译与链接
- ASP.NET与SqlServer实战:多系统开发案例解析
- 掌握CVT网知识点:测试题与答案解析
- 实用定时关机软件:定时关机1.5
- 360电脑专家网速优化工具使用指南
- MS-DOS7.1操作系统IMG文件下载指南
- 深入探讨唐川Flash作品的精彩与学习价值
- 四川矢量地图下载资源,MapInfo格式,2012年版本
- 数据库基础知识及设计答案解析
- 安防监控企业管理系统源码分析与部署
- Win32 API与MFC中文类库深入解析
- Windows7整合教程:32位与64位安装系统的完美合并
- 安卓仿浏览器界面设计与实践指南
- 希尔排序算法源码下载及参考指南
- ITK/VTK平台下医学图像的三维区域生长分割技术
- PHP memcached扩展源码包及安装依赖解析
- Cg代码实现颜色抠像技术深度解析
- DWZ框架学习资料下载与使用指南