终于搞定了dispatchAction.现将步骤总结如下:
JSP方面。没有更多的要求。重要的是在JSP里要用JS对传到ACTION里的隐藏表单元素'action'进行操作赋值。
ACTION里通过提取值进行跳转到相关的方法。如delete,save.
代码如下:
//testDispatchAction.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>
testDispatchAction
</title>
<script>
function setAction(ActionValue)
{
document.forms[0].elements['action'].value = ActionValue;
//alert(document.forms[0].elements['action'].value);
return;
}
</script>
</head>
<body bgcolor="#ffffff">
<html:form action="/testDispatchAction.do" method="POST">
<html:hidden property="action"/>
<html:submit onclick="setAction('save')" value="save"/>
<html:submit onclick="setAction('delete')" value="delete"/>
</html:form>
<%
String action = (String)request.getAttribute("action");
out.print(action);
%>
</body>
</html>
----------------------------------------------------------------
//testDispatchAction.java
继承dispatchAction方法。因为execute方法是一定会执行的。所以在execute中提取JSP中的ACTION元素的值。
用dispatchMethod方法跳转到相关的方法。进行操作。(需要注意的是。我总把参数ActionMapping,ActionForm的位置搞反,这
样不会提示出任何错误。但无法跳转到目地页。会出现一个空白的网页。)
package com.scgl.user.action;
import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.scgl.javabean.Book;
import java.util.ArrayList;
import org.apache.struts.actions.DispatchAction;
import javax.servlet.http.HttpSession;
public class testDispatchAction extends DispatchAction {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws java.lang.Exception
{
String targetUrl = "failure";
String action = request.getParameter("action");
System.out.println("------------------------------->"+action);
request.setAttribute("action",action);
// return mapping.getInputForward();
// return (mapping.findForward(targetUrl));
// action = (action == null || action.trim().equals("")) ? "init" : action;
return dispatchMethod(mapping, form, request,
response, action);
// String action = request.getParameter("action");
// request.setAttribute("action",action);
// System.out.println("------------------------------->"+action);
// return mapping.getInputForward();
}
public ActionForward save(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
String action = request.getParameter("action");
request.setAttribute("action",action);
System.out.println("这是sava方法");
return mapping.getInputForward();
}
public ActionForward delete(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
String action = request.getParameter("action");
request.setAttribute("action",action);
System.out.println("这是delete方法");
return mapping.getInputForward();
}
}
分享到:
相关推荐
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...
下面我们将详细探讨`DispatchAction`的使用步骤和关键点: 1. **创建子类**:首先,你需要创建一个继承自` DispatchAction `的Java类。在这个类中,你可以定义自己的业务逻辑方法,比如`executeSave()`、`...
DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的Action类拆分成多个子方法,每个子方法处理特定的业务逻辑,从而提高了代码的组织性和可维护性。 DispatchAction的工作原理是通过...
具体步骤如下: 1. **前端传递参数**:在客户端,通常在JavaScript中,我们可以动态构建请求URL,将需要执行的方法名添加到URL的查询字符串中,例如`/myAction?run=doSomething`。 2. **后端接收和解析**:在...
Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...
### DispatchAction、LookupDispatchAction、SwitchAction 的应用详解 #### 一、DispatchAction 的应用 **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心...
总结,通过结合Struts的DispatchAction和存储过程,我们可以高效地实现分页功能,优化性能并提供良好的用户体验。这种方案减少了服务器与数据库之间的交互次数,降低了网络延迟,同时存储过程的预编译特性也有助于...
以下是如何配置和使用`DispatchAction`的步骤: 1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ...
a onclick="javascript:window.open(encodeURI(encodeURI('./DispatchAction.do?ename=FKRY0001&code_type=中文参数')))"测试/a 或者单独对参数进行二次编码: var code_type = "中文参数"; code_type = encodeURI...
在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...
这个"SSH整合继承DispatchAction的简单例子"是一个演示如何将这三个框架集成在一起,并利用Struts的DispatchAction来实现多请求分发的功能。 首先,让我们深入理解SSH框架的核心功能。Spring是一个强大的依赖注入...
本文将深入解析Struts中的控制器组件,特别是DispatchAction的使用。 在Struts框架中,控制器主要由ActionServlet和Action类组成。ActionServlet作为前端控制器,负责拦截所有HTTP请求,并根据配置文件(struts-...
### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
本文总结了 Java 面试中的一些常见问题,涵盖了 Ajax 的原理、优缺点、 DispatchAction 和 Action 的区别等知识点。 Ajax 的原理 Ajax 是一种异步请求技术,通过 XmlHttpRequest 对象来向服务器发送异步请求,从...
11.2.6 DispatchAction(多动作控制器) 11.3 利用Struts实现用户登录的示例 11.6.1 编写实现登录的页面login.jsp 11.6.2 编写存储登录用户信息的类User.java 11.6.3 编写控制器LoginAction.java 11.6.4 配置Struts...