使用DispatchAction类,为你的系统减肥!
2007-09-30 13:14
302 查看
在Struts中你要尽可能的不用Action类,因为他们让你的项目变得臃肿,你可以使用org.apache.struts.actions.DispatchAction类来完成业务逻辑所需要的相关操作集中到一个Action类中,在继承DispatchAction后,你不再是重新定义execute()方法,而是编写你自己的业务方法,execute()方法在DispatchAction抽象类定义。
例如我们可以继承DispatchAction来定义一个AccountAction,在当中集中管理一些与账号相关的操作,如下:
package onlyfun.caterpillar;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
public class AccountAction extends DispatchAction {
public ActionForward login(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // login相关的操作 ...... }
public ActionForward logout(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // logout相关的操作 ...... }
public ActionForward method1(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // method1相关的操 ...... } .....}
我们不再重新定义execute()方法,而是定义我们自己的login()、logout()等方法,这些方法接收与execute()相同的参数,并且也传回ActionForward对象。使用DispatchAction时,我们要在struts-config.xml定义:
path="/account"
type="onlyfun.caterpillar.AccountAction"
parameter="method"
name="userForm">
name="greeting"
path="/login/greeting.jsp"/>
主要就是在parameter的属性上,我们指定以method请求参数来指定我们所要使用的方法,例如下面的网址将会执行AccountAction的login()方法:http://localhost:8080/HelloStruts/account.do?method=login&name=caterpillar&password=1234注意在请求参数中,我们包括了method=login来指定执行login()方法,同样的,如果你要执行logout()方法,则如下http://localhost:8080/HelloStruts/account.do?method=logout
转自:http://www.yourblog.org/data/20055/265266.html
例如我们可以继承DispatchAction来定义一个AccountAction,在当中集中管理一些与账号相关的操作,如下:
package onlyfun.caterpillar;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
public class AccountAction extends DispatchAction {
public ActionForward login(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // login相关的操作 ...... }
public ActionForward logout(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // logout相关的操作 ...... }
public ActionForward method1(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception { // method1相关的操 ...... } .....}
我们不再重新定义execute()方法,而是定义我们自己的login()、logout()等方法,这些方法接收与execute()相同的参数,并且也传回ActionForward对象。使用DispatchAction时,我们要在struts-config.xml定义:
path="/account"
type="onlyfun.caterpillar.AccountAction"
parameter="method"
name="userForm">
name="greeting"
path="/login/greeting.jsp"/>
主要就是在parameter的属性上,我们指定以method请求参数来指定我们所要使用的方法,例如下面的网址将会执行AccountAction的login()方法:http://localhost:8080/HelloStruts/account.do?method=login&name=caterpillar&password=1234注意在请求参数中,我们包括了method=login来指定执行login()方法,同样的,如果你要执行logout()方法,则如下http://localhost:8080/HelloStruts/account.do?method=logout
转自:http://www.yourblog.org/data/20055/265266.html
相关文章推荐
- 使用DispatchAction类,为你的系统减肥!
- 使用DispatchAction类,为你的系统减肥!
- 使用DispatchAction类,为系统减肥!
- 使用DispatchAction类,为系统减肥!
- OpenGL深入探索——使用 Transform Feedback 创建粒子系统
- VMware虚拟机系统无法使用桥接联网的解决方法
- linux下系统资源监控软件Nmon的使用和安装
- Linux系统下Vim的多窗口使用技巧
- windows系统使用的误区
- 几种Memcache的状态监控的工具,以及安装和使用【linux系统】
- Linux系统限制普通用户内存使用(ulimit)和硬盘配额空间(quota)
- VC获得系统当前进程以及某进程使用的模块的方法
- UI框架系统剖析系列2(源代码使用说明)
- Android 使用SeekBar调节系统音量
- 2种方法查询Windows Server使用命令 查询系统信息
- Mako 模板系统文档翻译(1) 使用基础
- 使用/sys文件系统访问Linux内核
- 使用Fluentd + MongoDB构建实时日志收集系统
- mac 系统升级后studio的git不能使用
- [转]Android系统开发中LOG的输出与使用