`
senton
  • 浏览: 205852 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

Struts 之 DispatchAction

    博客分类:
  • Web
阅读更多
介绍
    DispatchAction就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute被调用的方法。
    例如parameter="method"而request.getParameter("method")="save",其中"save"就是MethodName。struts的请求将根据parameter被分发到"save"或者"edit"或者什么。但是有一点,save()或者edit()等方法的声明和execute必须一模一样。
 
新建工程:test
添加Struts框架
 
创建index.jsp
 
按下Ctrl + N ,创建add.jspUsersAction.java
ActionForm采用动态的ActionForm,所以继承于DynaActionForm
UserAction的内容将包含add、delall等方法,并且继承于DispatchAction
 
* 记得修改AddAction.java 为 UsersAction
 
<action
      attribute="addForm"
      input="/add.jsp"
      name="addForm"
      parameter="method"
      path="/add"
      scope="request"
       validate="false"
      type="com.test.struts.action.UsersAction" />
 
* 绿色字全部份为参数
 
新建一个forward,名称为indexGo,并指向index.jsp,Relative设置为true
 
修改add.jsp文件
              <html:form action="/add">
           username : <html:text property="username"/><html:errors property="username"/><br/>
           <html:submit onclick="document.forms[0].action='add.do?method=add';document.forms[0].submit();"/><html:cancel/>
       </html:form>
 
* 绿色字为修改部份
修改后的提交方式是带参数提交的,不过必须点提交按钮,如果是使用回车键的话就不会带有参数
 
修改UsersAction.java文件
增加以下代码:
    public ActionForward add(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        DynaActionForm addForm = (DynaActionForm) form;
        String username = addForm.getString("username");
        // 验证用户输入
        if (username == null || username.length() < 1)
            mapping.getInputForward();
        HttpSession session = request.getSession();
        // 从session中获得数据
        Vector users = (Vector) session.getAttribute("Users");
        if (users == null)
            users = new Vector();
        users.addElement(username);
        session.setAttribute("Users", users);
        return mapping.findForward("indexGo");
    }
 
 
修改index.jsp文件,使页面中可以显示session中的数据,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<html>
 <head>
    <title>INDEX</title>
 </head>
 
 <body>
    <a href="add.jsp">ADD USER</a><br>
    <a href="delete.jsp">DELETE ALL</a><p>
    <logic:present name="Users">
    <logic:iterate id="element" name="Users">
        <bean:write name="element"/><br>
    </logic:iterate>
    </logic:present>
 </body>
</html>
 
 
按下Ctrl + N ,创建DellallAction.java,继承于DispatchAction
选中:Use existing Action class,浏览UsersAction
选中:Parameter选项卡,填入method,然后完成
 
现在修改index.jsp文件
<a href="delete.jsp">DELETE ALL</a><p>
改为
<a href="delall.do?method=delall">DELETE ALL</a><p>
 
修改UsersAction.java文件
增加以下代码:
    public ActionForward delall(
            ActionMapping mapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
            HttpSession session=request.getSession();
            session.setAttribute("Users",null);
            return mapping.findForward("indexGo");
        }
 
这一步很重要,execute 方法必须删除!!!
 
好了,可以进行测试了!!!
 
分享到:
评论

相关推荐

    struts中dispatchAction用法

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

    struts DispatchAction

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

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

    DispatchAction是Struts框架中的一个动作类,用于处理用户的请求并转发到相应的业务逻辑。在这个场景中,我们将探讨如何结合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

    速动画教程系列第13集

    在本教程"速动画教程系列第13集"中,我们聚焦于"Struts之DispatchAction",这是一个核心的组件,用于处理用户请求并调度到相应的业务逻辑。 DispatchAction是Struts 1.x版本中的一个关键类,它的主要职责是将HTTP...

    利用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 再决定是否下载。

    DispatchAction

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

    DispatchAction实例

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

    struts1.2实现计算器示例

    首先,`DispatchAction`是Struts1.2中的一个核心类,它是`Action`类的子类,主要负责处理HTTP请求。在`DispatchAction`中,我们可以通过重写`execute`方法来定义多个业务处理方法,每个方法对应一个特定的请求路径。...

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

    Struts框架是Java Web开发中的一个关键组件,属于SSH(Struts、Spring、Hibernate)三大框架之一。它提供了一种模型-视图-控制器(MVC)架构模式,帮助开发者组织和管理应用程序的业务逻辑、数据处理和用户界面。...

    Struts之进阶篇.pdf

    本文主要聚焦于Struts框架中的几个关键概念:Map-backed ActionForm、Action类层次结构、标准桥式Action类(如DispatchAction)以及它们的工作原理。 ### Map-backed ActionForm #### 1. 概念介绍 从Struts 1.1...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

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

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

Global site tag (gtag.js) - Google Analytics