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的朋友点帮助,也请高手指正。谢谢。

你可能感兴趣的:(apache,jsp,xml,servlet,struts)