`

structs里Dispatchaction VS LookupDispathAction

阅读更多
   Struts里这两个玩意还是十分有用的,近来学习到,故总结之

首先,DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个

action里处理,比如在商品购物系统中,有增加商品,删除商品,修改商品和查看商品,以前的话,要写三个action来操作之,现在可以合在一个action里进行操作了,可以创建一个类,继承自dispatchaction类的子类,不需要覆盖execute()方法。比如

import org.apache.struts.actions.DispatchAction;

public class ItemeAction extends DispatchAction{

 //增加商品

        public ActionForward add(ActionMapping mapping,

                            ActionForm form,

                            HttpServletRequest request,

                            HttpServletResponse response)

          throws Exception {

          ...

          ...

          }

/**编辑商品**/

            public ActionForward edit(ActionMapping mapping,

                            ActionForm form,

                            HttpServletRequest request,

                            HttpServletResponse response)

          throws Exception {

          ...

          ...

          }         

    }
 

接着,我们配置
<action path="/item"

 input="inputitem.jsp"

 parameter="method"  scope="request"

 type="ItemeAction"  

 validate="false">

</action>

上面的配置,要注意的是,要加上parameter="method".当itemaction这个类执行时,它实际上执行的是基类的dispatchaction的execute方法。DispatchAction根据参数method的值来确定具体调用的是其中的哪一个方法,比如一个用户的调用是
http://localhost/xxx/item?method=add,则调用itemaction类add的方法


再来看下lookupdispatchaction.该类是DispatchAction类的一个子类,它的应用场合在于多个同名提交按钮的表单场合。比如在一个购物的应用中,一个按钮用来“更新”购物车,一个用来移除购物车里的商品,一个用来做“提交结帐”的功能,假如他们的名字都叫action的按钮,则代码为
 <html:form action="/cart">

 

    <html:submit property="action"> 
 
      <bean:message key="cart.update"/>

    </html:submit>

    <html:submit property="action">

      <bean:message key="cart.check"/>

    </html:submit>
..............

 </html:form>

然后配置其action,

<action path="/carts"

        type="cartaction"

        name="cartForm"

        scope="request"

        parameter="action">
  //注意这里parameter名要为action

  
</action>,
接下来是创建lookupdispatchaction类的子类,扩展LookupDispatchAction类,需要实现getKeyMethodMap()方法,该方法返回java.util.Map类的对象,如
protected Map getKeyMethodMap() {

 

      Map map = new HashMap();

      map.put("cart.update", "update");

      map.put("cart.check", "checkcart");

      return map;

 }

public ActionForward update(ActionMapping mapping,

 

          ActionForm form,

          HttpServletRequest request,

          HttpServletResponse response)

          throws IOException, ServletException {

      // do add

      return mapping.findForward("success");

 }

 

 

 public ActionForward checkcart(ActionMapping mapping,

          ActionForm form,

          HttpServletRequest request,

          HttpServletResponse response)

          throws IOException, ServletException {

      // do delete

      return mapping.findForward("success");

 }



分享到:
评论

相关推荐

    struts中dispatchAction用法

    Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在处理用户请求时起到了至关重要的作用。DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的...

    Struts(DispatchAction) + 存储过程 => 实现分页效果

    DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过...

    struts DispatchAction

    Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...

    Struts 之 DispatchAction

    在Struts框架中,`DispatchAction`是一个关键组件,它扮演着控制器的角色,负责处理用户请求并调用相应的业务逻辑。在本篇文章中,我们将深入探讨`DispatchAction`的工作原理、优点以及如何在实际项目中使用。 `...

    Struts_DispatchAction的使用

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    Struts中等同于DispatchAction类方法

    标题提到的"Struts中等同于DispatchAction类方法"是指在Struts框架中,如何模拟`DispatchAction`的行为,即如何通过URL参数调用Action类的不同方法。在传统的`DispatchAction`中,我们通常会在子类中定义多个方法,...

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts2常用标签&DispatchAction.rar

    03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar

    利用struts标签,dispatchAction,实现增删改查

    在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...

    struts+oracle实现DispatchAction类

    在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    struts LookupdispathAction类使用实例

    Struts LookupDispatchAction 类是Apache Struts 框架中的一种高级控制器,它扩展了`DispatchAction`类,提供了一种更加灵活的方式来处理请求映射。在 Struts 框架中,Action 是业务逻辑的核心组件,负责接收HTTP...

    DispatchAction

    在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...

    DispatchAction实例

    在Struts框架中,`DispatchAction`是一个非常重要的组件,它是Struts提供的一个扩展自`Action`类的抽象类,主要用于处理多个请求方法的情况。在实际的Web应用程序开发中,通常一个URL对应一个Action,而`...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心作用是允许将多个原本需要独立 Action 处理的任务合并到一个 Action 中进行处理,从而简化了 Action 的管理...

    struts1.2实现计算器示例

    Struts1.2是一个经典的Java Web框架,它在企业级应用开发中被广泛使用,尤其在Web MVC(Model-View-Controller)设计模式的应用上。本示例是基于Struts1.2实现的一个计算器程序,旨在帮助初学者理解Struts框架的工作...

    深入解析Java的Struts框架中的控制器DispatchAction

    本文将深入解析Struts中的控制器组件,特别是DispatchAction的使用。 在Struts框架中,控制器主要由ActionServlet和Action类组成。ActionServlet作为前端控制器,负责拦截所有HTTP请求,并根据配置文件(struts-...

    org.apache.struts缺少所需包

    import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少

    struts_02源代码

    2. **15_struts_dispatchaction_usermgr**: DispatchAction 是 Struts 提供的一个特殊Action,它可以将请求分发到多个方法,而不是只调用一个处理方法。Usermgr 可能是用户管理模块,展示如何使用 DispatchAction ...

    struts_dispacthaction_usermgr

    Struts DispatchAction是Apache Struts框架的一个经典组件,主要用于处理多方法的Action。在Struts 1.x时代,它提供了一种方式来在一个Action类中定义多个处理不同请求的方法,从而提高了代码的组织性和可维护性。这...

Global site tag (gtag.js) - Google Analytics