使用DispatchAction类,为系统减肥!
在
Struts
中你要尽可能的不用
Action
类,因为他们让你的项目变得臃肿,你可以使用
org.apache.struts.actions.DispatchAction
类来完成业务逻辑所需要的相关操作集中到一个
Action
类中,在继承
DispatchAction
后,你不再是重新定义
execute()
方法,而是编写你自己的业务方法,
execute()
方法在
DispatchAction
抽象类定义。
例如我们可以继承
DispatchAction
来定义一个
AccountAction
,在当中集中管理一些与账号相关的操作,如下:
package com.fasttalk;
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定义:
<ACTION
path="/account"
type="com.fasttalk.AccountAction"
parameter="method"
name="userForm">
使用方法:
通过参数method= method1 来选择函数
<%
String dest = " account.do?method= method1";
response.sendRedirect(dest);%>