`
cui09
  • 浏览: 116272 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论

搞定了dispatchAction.现将步骤总结如下(原创061102)

阅读更多

终于搞定了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();

  }


}

分享到:
评论

相关推荐

    Struts2常用标签&DispatchAction.rar

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

    DispatchAction

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

    DispatchAction实例

    下面我们将详细探讨`DispatchAction`的使用步骤和关键点: 1. **创建子类**:首先,你需要创建一个继承自` DispatchAction `的Java类。在这个类中,你可以定义自己的业务逻辑方法,比如`executeSave()`、`...

    struts中dispatchAction用法

    DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的Action类拆分成多个子方法,每个子方法处理特定的业务逻辑,从而提高了代码的组织性和可维护性。 DispatchAction的工作原理是通过...

    Struts中等同于DispatchAction类方法

    具体步骤如下: 1. **前端传递参数**:在客户端,通常在JavaScript中,我们可以动态构建请求URL,将需要执行的方法名添加到URL的查询字符串中,例如`/myAction?run=doSomething`。 2. **后端接收和解析**:在...

    struts DispatchAction

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

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    ### DispatchAction、LookupDispatchAction、SwitchAction 的应用详解 #### 一、DispatchAction 的应用 **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心...

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

    总结,通过结合Struts的DispatchAction和存储过程,我们可以高效地实现分页功能,优化性能并提供良好的用户体验。这种方案减少了服务器与数据库之间的交互次数,降低了网络延迟,同时存储过程的预编译特性也有助于...

    Struts 之 DispatchAction

    以下是如何配置和使用`DispatchAction`的步骤: 1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ...

    JSP对URL链接中的中文乱码处理方法总结.docx

    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框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

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

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

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

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

    SSH整合继承DispatchAction的简单例子

    这个"SSH整合继承DispatchAction的简单例子"是一个演示如何将这三个框架集成在一起,并利用Struts的DispatchAction来实现多请求分发的功能。 首先,让我们深入理解SSH框架的核心功能。Spring是一个强大的依赖注入...

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

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

    Url Rewrite Filter实现页面伪静态化,简单实例及步骤

    ### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...

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

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

    java面试过程中遇到的问题总结

    本文总结了 Java 面试中的一些常见问题,涵盖了 Ajax 的原理、优缺点、 DispatchAction 和 Action 的区别等知识点。 Ajax 的原理 Ajax 是一种异步请求技术,通过 XmlHttpRequest 对象来向服务器发送异步请求,从...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    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...

Global site tag (gtag.js) - Google Analytics