`

LookupDispatchAction使用方法

阅读更多

名词解释:
    LookupDispatchAction继承DispatchAction, 用于对同一个页面上的多个submit按钮进行不同的响应。其原理是,首先用MessageResource

将按钮的文本和ResKey相关联,例如button.save=保存;然后再复写getKeyMethodMap(), 将ResKey和MethodName对应起来, 例如map.put

("button.save", "save"); 其配置方法和DispatchAction是一样的,一下是详细使用说明.
    我们今天要讲的是LookupDispatchAction的例子。本例目的是第一个页面test.jsp上有一个表单,这个表单中有个submit。分别点击不同

的submit会跳转到两个不同的页面one.jsp,two.jsp。我的开发工具是Eclipse3.2.1,MyEclipse5.1,导入struts1.2。好了,我们现在开始。
步骤:
一.新建一个WEB工程,我取名为:lookupdispatchactiontest。
二.导入struts1.2,并在Base package for new classes:中修改报名,我改为:org.nanfeng.struts
三.在struts-config.xml总添加一套三合一(jsp,action,form)。并在Use case:中起名字,我起为:test。然后Create JSP form,并  

将/test.jsp前面的/form去掉。下一步
四.在Superclass:总选中:org.apache.struts.actions.LookupDispatchAction。完成。
五.再新建两个JSP页面,分别取名为one.jsp,two.jsp。
六.在testForm与one.jsp,two.jsp页面之间分别创建forward,取名为toone,totwo。
七.给struts-config.xml的testAction中添加一个新属性:parameter="action"。
八.修改test.jsp中<body>标记中的内容为:

    <html:form action="/test" method="post">
   <html:submit property="action">
     <bean:message key="toone"/>
   </html:submit><br>
   <html:submit property="action">
     <bean:message key="totwo"/>
   </html:submit>
    </html:form>

 
九.修改testAction中的内容为:
 

   public ActionForward one(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  TestForm testForm = (TestForm) form;
  return mapping.findForward("toone");
 }
 public ActionForward two(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  TestForm testForm = (TestForm) form;
  return mapping.findForward("totwo");
 }
 @Override
 protected Map getKeyMethodMap() {
  Map map = new HashMap();
  map.put("toone", "one");
  map.put("totwo", "two");
        return map;
 }

 十.修改ApplicationResources.properties中的内容为:
   toone:one
   totwo:two
十一.完成,部署到Tomcat中运行看看吧!!最好再修改一下one.jsp和two.jsp这两个页面,容易看效果。

注:
   下面给大家解释一下上面的代码:
    第八步.submit后面的property中的属性值action就是struts-config.xml中testAction里新添加的属性parameter的值,这里它相当于一个

参数名。message后面的key的值toone,totwo,表示的就是对于action的参数值。它的作用是在testAction中的getKeyMethodMap()方法中找到

对应的方法名,也就是本例中的one()和two()。另外一定不能忘记的是在getKeyMethodMap()中将页面传过来的参数和方法名关联之后必须还要

在ApplicationResources.properties中也将它们关联起来。
   第九步.one()和two()这两个方法就是原来action中的excute()方法,这里就避免如在excute()方法中做无休止的判断了。
protected Map getKeyMethodMap()方法就是将test.jsp中传过来的参数与上面两个方法名关联起来。

相关推荐

    LookupDispatchAction 是使用方法

    默认情况下,Struts1的动作类只有一个`execute()`方法,但使用`LookupDispatchAction`时,可以定义多个处理特定请求的方法,每个方法对应一个特定的请求参数。 二、配置与使用 1. 配置struts-config.xml 首先,需要...

    Struts(二)List_Map_LookupDispatchAction_Validate

    LookupDispatchAction使用Dispatcher来解析请求参数,找到正确的方法执行。 7. **视图渲染**: 在验证和业务处理完成后,Struts会根据Action的返回结果,结合struts-config.xml中的配置,选择合适的JSP页面或其他...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    例如,可以在一个 Action 中使用 Java 的 `switch` 语句或 Map 来实现动态地调用不同的处理方法: ```java public class CustomSwitchAction extends Action { private Map, Method&gt; methodMap = new HashMap(); ...

    struts LookupdispathAction类使用实例

    `LookupDispatchAction` 提供了基于方法名的请求映射,而不是基于参数或路径的映射,这使得代码结构更加清晰,易于维护。 1. **LookupDispatchAction 的工作原理** - `LookupDispatchAction` 实例化后,会根据配置...

    LookUpDispachAction的用法详解

    下面将详细介绍LookUpDispatchAction的使用方法以及其在Struts应用中的重要性。 首先,让我们理解LookUpDispatchAction的核心概念。通常,一个Action类对应一个或多个业务逻辑方法,每个方法处理特定的用户请求。...

    基于JAVA SMART系统-系统框架设计与开发(源代码+论文).zip

    其中的LookupDispatchAction类是允许你指定一个具有多个方法的类,每一个方法的调用都基于配置文件中指定的一个特殊请求参数值,利用该参数值反向查询资源绑定,并将它与类中的一个方法进行匹配。从这些功能可以看出...

    J2EE_高级Action

    在Web开发中,特别是使用Struts框架时,经常会遇到一个问题:当一个简单的组件(如购物车)需要执行多种操作(如添加商品、删除商品、修改商品数量等),而Struts的`Action`类通常只有一个`execute`方法时,如何设计...

    java处理一个form多个submit

    在 Struts1 中,使用 LookupDispatchAction 动作可以处理含有多个 submit 的 form。但是,这种方式需要访问属性文件,还需要映射,比较麻烦。从 Struts1.2.9 开始,加入了 EventDispatchAction 动作,该类可以通过 ...

    Struts2教程:处理一个form多个submit.doc

    在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...

    struts1深入学习

    struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例

    整合Struts_Hibernate_Spring应用开发详解

    - **使用LookupDispatchAction:** 支持根据请求参数动态选择Action执行。 - **使用ForwardAction:** 实现简单的页面转发。 - **使用IncludeAction:** 实现页面包含。 - **使用SwitchAction:** 基于条件选择...

    struts1.x和mysql整合的登陆例子

    在这个例子中,可能会使用`LookupDispatchAction`,这是一个特殊类型的Action,它允许根据用户提交的按钮值(submit标签的name属性)来调用不同的业务方法。 在用户界面设计中,静态验证是先于服务器端验证的一步,...

    轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第二部分

    `DispatchAction`和`LookupDispatchAction`是Struts中的特殊动作,前者允许基于请求参数来调用不同的方法,后者则是在`DispatchAction`基础上进一步细化,根据请求的参数值查找并执行相应的方法。 `DynaActionForm`...

    struts 1的标签的用法详细

    8. JSP页面使用Struts标签显示数据或进行其他操作。 ### 二、控制器组件 #### 1. struts-config.xml 这是Struts的核心配置文件,定义了Action、ActionForm、ActionMapping等元素,用于指导请求处理和视图渲染。 #...

    Struts开发指南03

    LookupDispatchAction则能根据提交表单按钮的名称来调用相应的方法。 在Struts的工作流程中,一旦Action执行完毕,它会返回一个ActionForward对象。ActionForward代表一个URL,指示下一步应该去哪里,可以是另一个...

    struts初级教程

    - **LookupDispatchAction**:基于表单提交的按钮名称调用不同方法。 5. **Taglib** Struts提供了自定义标签库(Taglib),如`struts-bean`、`struts-html`、`struts-logic`和`struts-nested`,以及`struts-tiles...

    轻量级J2EE企业应用实战源码 3 下

    1. **LookupDispatchAction**: 这个文件可能涉及到Struts框架中的`LookupDispatchAction`,这是一个用于处理多视图的Action,它可以根据用户请求的参数来决定调用哪个业务方法。这在实现复杂的视图跳转和逻辑控制时...

    struts教程

    - **LookupDispatchAction**: - 类似于`DispatchAction`,但支持通过查找(lookup)来确定要执行的方法。 #### 十、Struts之Tiles - **Tiles概述**: - 是Struts的一个扩展插件,用于管理Web应用中的布局和模板...

    struts2.0之action

    Struts 2.0还提供了一种方式来改变默认调用的方法,这类似于Struts 1.x的`LookupDispatchAction`。在`struts.xml`中,可以直接指定Action的执行方法,例如: ```xml &lt;result name="success"&gt;/HelloWorld.jsp ...

Global site tag (gtag.js) - Google Analytics