首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts的DispatchAction容易应用

2012-11-01 
Struts的DispatchAction简单应用DispatchAction是仅次于Action,使用最频繁的Action。用于一个表单中有两个

Struts的DispatchAction简单应用
  DispatchAction是仅次于Action,使用最频繁的Action。用于一个表单中有两个提交时,但提交需要的逻辑处理却不相同的情况。一句话:用于分发的Action,主要的好处是把一些功能类似的Action放到一个Action中,通过传入的不同参数来觉得执行哪个操作.
  现在我做了一个登录的例子,很简单,没有连数据库,说明下它的用法而已。
  首先在myeclips下建个project,添加struts支持,新建个action叫DispatchTestAction,继承DispatchAction。将它的execute()方法改个名,叫login吧,如下代码:
package com.yourcompany.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class DispatchTestAction extends DispatchAction {

public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
return mapping.findForward("success");
}
}
什么也没做,就转向而已。
第二步,配置struts-config.xml文件,如下配置:
<action path="/login" type="com.yourcompany.struts.action.DispatchTestAction" parameter="method1" >
      <forward name="success"  path="/success.jsp"/>
    </action>
好了,建个success.jsp,随便写的登录成功,欢迎什么的。
在index.jsp上写如下代码:
  <form action="login.do">
   用户名:<input name="username" type="text"/><br>
   密  码: <input name="pwd" type="password"/><br>
   <input type="text" name="method1" value="login"><br>
      <input type="submit" value="提交"><br>
      <a href="login.do?method1=login">提交</a>
   </form>
那个method1文本框在实际中用的是hidden,我给大家看,就用文本框了。超链接也是为了给大家多点选择。
过程是这样的:在form中传个值给struts-config.xml,struts-config.xml就会根据这个值找到相应的方法。
图省事,我只做了一个方法,希望可以给学习struts的朋友点帮助,也请高手指正。谢谢。      <a href="login.do?method1=login">提交</a>
我记得LookupDispatchAction可以实现2个submit按钮提交,你这个方式不是很好 2 楼 frh0792 2008-09-19   LookupDispatchAction也是dispatchaction的一种,是很简单,但提交按钮必须使用struts的html标签。

热点排行