在struts中DispatchAction的使用方法?最好有实例代码!

zuoguodang 2008-04-17 09:45:17
如题,到底对开发的时候,有什么好处么
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小南瓜瓜 2008-04-17
  • 打赏
  • 举报
回复
不使用dispatchAction也可以实现的,但是要从页面上传参数,其实都是一样的原理
vbjava_zym 2008-04-17
  • 打赏
  • 举报
回复
同一个模块下 为了 更清晰的 把所有的功能都 整和到一起 所以可以用到它 只不过用的时候要指向一个方法在 config 中加上一个参数
firebird44 2008-04-17
  • 打赏
  • 举报
回复
DispatchAction 继承与Action


可以减少Action数量,使程序清晰,简洁
yangxiao_jiang 2008-04-17
  • 打赏
  • 举报
回复
DispatchAction是struts里面使用的,你一般不会使用这个的。

这个是能根据你的forward的路径,进行dispatch
bobor_2008 2008-04-17
  • 打赏
  • 举报
回复
DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注与实际操作的方法,
1.首先要一个DispatchAction的子类,它含有一些方法,login,logout,method1,
package examples;

package examples;

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的邏輯
return mapping.findForward("success");

}

public ActionForward logout(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// 進行一些Logout的邏輯
return mapping.findForward("success1");

}

public ActionForward method1(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// 進行一些method1的邏輯
return mapping.findForward("success");

}


}



一定要注意在DispatchAction中你想执行的操作,都必须要有统一的参数(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response),是一个规定.
2.接下来是配置struts-config.xml

<action path="/login" type="examples.AccountAction"
name="logonForm"
scope="request"
parameter="action"
input="/pages/dispatch1.jsp">
<forward name="success" path="/pages/success.jsp" />
</action>

<action path="/logout" type="examples.AccountAction"
name="logonForm"
scope="request"
parameter="action"
input="/pages/dispatch1.jsp">
<forward name="success1" path="/pages/success1.jsp" />
</action>

这里需要注意的就是parameter属性的值,因为这个值要和页面传来的参数对应.

3.再来看看JSP页 pages/dispatch1.jsp

<%@ taglib uri="/tags/struts-html" prefix="html" %>
<html:link href="/DispathActionTest/login.do?action=login">login</html:link><br>
<html:link href="/DispathActionTest/logout.do?action=logout">logout</html:link>


这里要注意几点,首先 ?后面的KEY要和struts-config.xml中的parameter相同,还有它的VALUE要是你在action的一个方法名字,这里方法名为login, 那么在程序运行时就是调用login的操作,如果是logout,那程序就调用logout的操作.
zuoguodang 2008-04-17
  • 打赏
  • 举报
回复
快点回答啊

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧