Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用DispatchAction类,为你的系统减肥!

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

    在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
        



相关文章

相关软件