【跟我一步一步学Struts2】——Action
来源:互联网 发布:淘宝上的diy耳机 编辑:程序博客网 时间:2024/05/16 10:42
Action才是Struts2真正应用的核心,Action类里面包含了对用户请求的处理逻辑。在Struts.xml中配置好后就可以调用了。
Action实现
实现Action接口
Struts2提供了一个Action接口,在Action接口中定义了一些常量和execute方法,我们可以使用该接口,这样开发更规范。如果实现此接口就必须写execute()方法。
继承实现类ActionSupport
这个类实现了Action接口。此外这个类还提供了许多默认方法,例如国际化,数据校验,默认处理用户请求的方法等。所以继承这个类会很方便。
一般情况下用继承ActionSupport,如果用Action则必须实现execute()方法,如果是继承ActionSupport,Action会简化很多代码,因为ActionSupport中封装了许多默认的方法。
通常使用Action封装HTTP请求参数,因此Action里面还有与请求参数对应的属性以及setter,getter方法。
Action中包含多个方法如何调用
在<action>标签中配置method属性
<packagename="user-package" extends="struts-default"> <actionname="addUser" class="com.bjpowernode.struts2.LoginAction"method="add"><result>/addSuccess.jsp</result></action> <actionname="delUser" class="com.bjpowernode.struts2.LoginAction"method="del"><result>/delSuccess.jsp</result></action> <actionname="updateUser"class="com.bjpowernode.struts2.LoginAction"method="update"><result>/updateSuccess.jsp</result></action> <actionname="listUser" class="com.bjpowernode.struts2.LoginAction"method="list"><result>/listSuccess.jsp</result></action> </package>
增删改查是四个相同的处理类,但是处理逻辑不同,处理逻辑通过method方法指定,所以method方法指定的内容一定要与方法名一致。这种方式配置量大,而且还不好控制。
使用通配符来降低配置量
<actionname="*User" class="com.bjpowernode.struts2.LoginAction"method="{1}"><result>/{1}Success.jsp</result></action>如果是调用addUser.action,则{1}里面匹配的是add
在配置<action .../>元素时,需要指定name,class,method属性都可支持通配符。URL明确,比较好控制
此外还有一种方式是动态调用的方式( action ="action!add.action")这种方式不被推荐使用。
总结
简单的说Action就是用来封装对象的getter,setter方法,并实现execute()方法。也就是用户的每次请求,都会转到一个相应的Action类里面,由其对应的Action类来处理。也就是Action既封装对象,也可以进行业务的处理。
- 【跟我一步一步学Struts2】——Action
- 【跟我一步一步学Struts2】——Struts2工作流程
- 【跟我一步一步学Struts2】——登陆例子
- 【跟我一步一步学Struts2】——拦截器
- 一步一步跟我学Struts2 —— OGNL,数据运转的催化剂
- 一步一步跟我学Delphi制作多文档编辑器
- 跟我一步一步学写测试用例
- 跟我一步一步学使用ACE(linux 版)
- 使用KGDB调试内核 on QEMU(一步一步跟我学)
- 使用KGDB调试内核 on QEMU(一步一步跟我学)
- 跟我一步一步学爬虫---基础篇(一)
- 跟我一步一步学爬虫---传参篇(二)
- 跟我一步一步学爬虫---403禁止访问(三)
- 跟我一步一步学solr6: 环境搭建篇
- 跟我一步一步学solr6:createIndex 和 搜索篇
- 身份验证——《跟我学Shiro》
- 授权——《跟我学Shiro》
- 一步一步学struts2
- ARP 协议
- LeetCode: First Missing Positive
- n个节点能组成多少种二叉树
- iOS7开发学习之路:No.10:XCode手动Clean资源文件,xib文件autolayout,对某个特定文件关闭ARC
- js判断是什么浏览器
- 【跟我一步一步学Struts2】——Action
- LevelDb 资料整理
- Android init.rc BOOTCLASSPATH
- JAVA基础 (二)反射 深入解析反射机制
- 工作日志2014-08-27
- OpenGL学习脚印: 基本图形绘制方式比较(glBegin,glCallList,glVertexPointer,VBO)
- SQLite3的使用
- 增加录像时间戳水印、 camera框架介绍
- 全局变量与静态变量