今天使用LookupDispatchAction时,由于编写的类继承LookupDispatchAction,同时也覆盖其execute()方法,结果导致自己编写的逻辑函数不起作用,把覆盖execute()方法的代码去掉即可实现同名按钮提交分别处理的效果,下面是代码:
JSP文件
<%@ page contentType="text/html; charset=GBK" %>
<%@ include file="taglib.jsp" %>
<html>
<head>
<title>
jsp7
</title>
</head>
<body bgcolor="#ffffff">
<html:form action="/processCheckoutAction.do">
<html:text property="abc">
</html:text>
<html:submit property="action"><bean:message
key="welcome.user"/></html:submit>
<html:submit property="action"><bean:message
key="goodbye.user"/></html:submit>
</html:form>
</body>
</html>
扩展的LookupDispatchAction
public class ProcessCheckoutAction extends LookupDispatchAction ...{
protected Map getKeyMethodMap()...{
Map map=new HashMap();
map.put("welcome.user","saveorder");
map.put("goodbye.user","checkout");
return map;
}
public ActionForward saveorder(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)...{
System.out.println("saveorder");
return (mapping.findForward("success1"));
}
public ActionForward checkout(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)...{
System.out.println("checkout");
return (mapping.findForward("success2"));
}
}
Struts-config.xml相应的配置
<action name="untitled2ActionForm" parameter="action"
path="/processCheckoutAction" scope="request"
type="test.ProcessCheckoutAction" validate="true">
<forward name="success1" path="/jsp5.jsp" />
<forward name="success2" path="/jsp6.jsp" />
</action>
分享到:
相关推荐
默认情况下,Struts1的动作类只有一个`execute()`方法,但使用`LookupDispatchAction`时,可以定义多个处理特定请求的方法,每个方法对应一个特定的请求参数。 二、配置与使用 1. 配置struts-config.xml 首先,需要...
3. **List和Map**: 在描述中提到的`List_Map_LookupDispatchAction_Validate`可能是指在处理请求时,LookupDispatchAction使用List和Map来组织和存储数据。List是一个有序的集合,可以按索引访问,适合存储一系列...
为了使用 **DispatchAction**,首先需要继承该类并实现具体的业务逻辑方法。例如: ```java import org.apache.struts.actions.DispatchAction; public class ArticleAction extends DispatchAction { /** * ...
Struts LookupDispatchAction 类是Apache Struts 框架中的一种高级控制器,它扩展了`DispatchAction`类,提供了一种更加灵活的方式来处理请求映射。在 Struts 框架中,Action 是业务逻辑的核心组件,负责接收HTTP...
其中的LookupDispatchAction类是允许你指定一个具有多个方法的类,每一个方法的调用都基于配置文件中指定的一个特殊请求参数值,利用该参数值反向查询资源绑定,并将它与类中的一个方法进行匹配。从这些功能可以看出...
下面将详细介绍LookUpDispatchAction的使用方法以及其在Struts应用中的重要性。 首先,让我们理解LookUpDispatchAction的核心概念。通常,一个Action类对应一个或多个业务逻辑方法,每个方法处理特定的用户请求。...
在Web开发中,特别是使用Struts框架时,经常会遇到一个问题:当一个简单的组件(如购物车)需要执行多种操作(如添加商品、删除商品、修改商品数量等),而Struts的`Action`类通常只有一个`execute`方法时,如何设计...
Struts 2.0还提供了一种方式来改变默认调用的方法,这类似于Struts 1.x的`LookupDispatchAction`。在`struts.xml`中,可以直接指定Action的执行方法,例如: ```xml <result name="success">/HelloWorld.jsp ...
在 Struts1 中,使用 LookupDispatchAction 动作可以处理含有多个 submit 的 form。但是,这种方式需要访问属性文件,还需要映射,比较麻烦。从 Struts1.2.9 开始,加入了 EventDispatchAction 动作,该类可以通过 ...
- **LookupDispatchAction**: - 类似于`DispatchAction`,但支持通过查找(lookup)来确定要执行的方法。 #### 十、Struts之Tiles - **Tiles概述**: - 是Struts的一个扩展插件,用于管理Web应用中的布局和模板...
8. JSP页面使用Struts标签显示数据或进行其他操作。 ### 二、控制器组件 #### 1. struts-config.xml 这是Struts的核心配置文件,定义了Action、ActionForm、ActionMapping等元素,用于指导请求处理和视图渲染。 #...
与`LookupDispatchAction`相比,它的使用更为便捷,无需与属性文件关联,也不需要手动在`getKeyMethodMap`方法中进行key和Action方法的映射。 #### 三、EventDispatchAction的工作原理 `EventDispatchAction`通过`...
在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...
尽管如此,为了利用Struts2提供的便利性,如内置的错误处理、本地化支持和验证机制,开发者通常会选择继承`com.opensymphony.xwork2.ActionSupport`类。这个类已经实现了多个接口,包括`...
- **使用LookupDispatchAction:** 支持根据请求参数动态选择Action执行。 - **使用ForwardAction:** 实现简单的页面转发。 - **使用IncludeAction:** 实现页面包含。 - **使用SwitchAction:** 基于条件选择...
- **LookUpDispatchAction**:与 DispatchAction 类似,但更灵活,可以动态地确定方法名。 2. **ActionServlet**:Struts1.x 的核心组件,负责初始化框架、接收 HTTP 请求并将请求分发给相应的 Action 类处理。 3. ...
`DispatchAction`和`LookupDispatchAction`是Struts中的特殊动作,前者允许基于请求参数来调用不同的方法,后者则是在`DispatchAction`基础上进一步细化,根据请求的参数值查找并执行相应的方法。 `DynaActionForm`...
如果验证失败,ActionForm会收集错误信息,以ActionError的形式存储,并将请求重定向回输入页面,显示错误提示。如果验证成功,ActionForm的数据将被传递给Action。 Action是实际执行业务逻辑的对象,每个Action...
在这个例子中,可能会使用`LookupDispatchAction`,这是一个特殊类型的Action,它允许根据用户提交的按钮值(submit标签的name属性)来调用不同的业务方法。 在用户界面设计中,静态验证是先于服务器端验证的一步,...