名称解释:
DispatchAction就是在struts-config中用parameter参数配置一个表单字段名,这个字段的值就是最终替代execute被调用的方法. 例如
parameter="method"而request.getParameter("method")="save",其中"save"就是MethodName。struts的请求将根据parameter被分发
到"save"或者"edit"或者什么。但是有一点,save()或者edit()等方法的声明和execute必须一模一样。
我们今天讲解的例子是第一个页面有两个超链接,这两个超链接都是跳到一个action中的,不用任何判断,分别让它们进行两个不同的操
作。就是分别转到两个不同的页面中去。
开发工具:Eclipse3.2.1,MyEclipse5.1,Tomcat5.5
一.首先新建一个WEB工程:File-New-Project-MyEclipse-J2EE Projects-Web Project,取名为DispatchTest
二.导入Struts jar包:右键工程名-MyEclipse-Add Struts Capabilities...
1.在Struts Suport for MyEclipse Web Project 页面中找到Struts specification:此为选择Struts版本,我们以Struts1.2为例介绍。
2.在Base package for new classes后面修改打包名称,最后一个包名struts最好不要改,一般只改前两个。
3.其他选项默认。
三.找到工程名/WebRoot/WEB-INF/,下面有struts-config.xml。双击它!!
1.在如下图所画位置点击右键,选择New-Form,Action and JSP。
2.在Struts1.2 Form Declaration页面的Use case:后面填写一个名称(名称随便写,但最好见名知意)我们这里用test。
3.在Optional Details 选项卡中选中JSP选项卡,在Create JSP form?前打勾,然后将下面的路径New JSP Path中的/form去掉。点击下一步。
4.在Superclass中选择org.apache.struts.actions.DispatchAction。
5.完成。
四.点击如下图所示的Source按钮,进入struts-config.xml的代码设计页面,找到我们刚才生成的那个action,它已经有attribute,input,name,path,scope,type,validate这几个属性,我们要为它再添加一个属性parameter。
我们这里写parameter="action",当然这个"action"也可以是任意名称。
五.点击struts-config.xml下方刚才点击的"Source"按钮左面的Design按钮,点击如下图所示的按钮,然后单击空白处会出现新建JSP页面的对话框。
1.在File Name中修改页面名称。这里我们做的就是跳转后的页面,所以如同此法再做一个。
2.在我们刚才用于新建JSP也面的JSP-Add JSP Page按钮上面有个Connection-Add Connection按钮,点击它,然后分别在testaction与后来
建的两个页面之间做连线,并分别命名为toone,totwo
六.打开WebRoot下的我们第一个建的JSP页面(test.jsp),在<body></body>标记内添加如下代码:
<html:link page="/test.do?action=one">去one页面</html:link><br>
<html:link page="/test.do?action=two">去two页面</html:link>
七.在我们后来建的两个JSP页面的body标记中分别填入this is one|tow page.(这是为了区别两个页面,便于我们检查例子是否成功)
八.在工程名/src/xx.xx.struts.action/下的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");
}
这段代码表示按照action="xx",的xx的值为方法名写的两个方法,分别对应两个超链接要执行的操作。这就免除了判断的麻烦。
九.好了,今天的例子讲解完毕!!运行起来看看吧!!
分享到:
相关推荐
Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在...通过学习和分析这些文件,初学者可以更深入地理解Struts中DispatchAction的使用和工作原理,从而更好地进行Java Web开发。
总结来说,"Struts中等同于DispatchAction类方法"是一种在不直接使用`DispatchAction`基类的情况下,通过前端传递方法名并在后端使用反射调用相应方法的技术,以实现多请求映射到单个Action类的多个方法。...
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
Struts1.2是一个经典的Java Web框架,它在企业级应用开发中被广泛使用,尤其在Web MVC(Model-View-Controller)设计模式的应用上。本示例是基于Struts1.2实现的一个计算器程序,旨在帮助初学者理解Struts框架的工作...
在Struts中,Action是业务逻辑的核心,而`DispatchAction`是Action的一个扩展,它提供了一种更加灵活的方式来处理请求。默认情况下,Struts的Action只有一个execute方法,但`DispatchAction`允许我们将请求映射到多...
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
### Struts 1.2 上传与下载技术详解 #### 一、简介 在Web开发中,文件的上传和下载是非常常见的需求之一。Struts框架作为一款流行的企业级应用开发框架,提供了强大的功能来处理这类操作。本文将详细介绍如何在...
`DispatchAction` 是 Struts 提供的一个抽象类,用于处理不同的请求方法,使得在同一个 Action 类中可以处理多个请求。 2. **ActionForm 类**: `FileForm` 类是自定义的表单类,继承自 `ActionForm`,用于封装...
6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant...
根据提供的文件信息,本文将详细解析Struts 1.2框架中的文件上传功能,并通过具体的代码示例来阐述其实现过程和技术要点。 ### Struts 1.2框架简介 Struts是一个开源的Web应用程序框架,它遵循MVC(Model-View-...
Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的请求并调度到相应的业务逻辑方法。在Struts框架中,DispatcherAction是Action类的一个子类,它的主要作用是实现...
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
《基于Struts1.2和Hibernate3.1的客户关系管理系统构建详解》 客户关系管理(CRM)系统是企业管理和维护客户关系的核心工具,通过整合和优化企业的销售、市场和服务等流程,提升客户满意度和企业盈利能力。本文将详细...
6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant...
struts1.2 图片文件上传(单个/动态多个) 单个的采用通用Action 需要ActionForm的,而动态多个上传是采用动态代理类(DispatchAction) 希望对大家有用,另JSP在IE测试通过,JS我就不再处理了!
首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据请求参数的不同,调用不同的方法来处理请求。这种设计使得Action类可以更加模块化,每个方法对应一种特定的操作,如添加、删除、更新或查询。 ...
在Struts框架中,`DispatchAction`是一个关键组件,它扮演着控制器的角色,负责处理用户请求并调用相应的业务逻辑。在本篇文章中,我们将深入探讨`DispatchAction`的工作原理、优点以及如何在实际项目中使用。 `...
1. **配置Struts DispatcherAction**:在Struts的配置文件(struts-config.xml)中,我们需要定义一个DispatchAction,每个方法对应一个具体的业务操作。例如,我们可以定义两个方法,一个用于获取总记录数,另一个...
本文将深入解析Struts中的控制器组件,特别是DispatchAction的使用。 在Struts框架中,控制器主要由ActionServlet和Action类组成。ActionServlet作为前端控制器,负责拦截所有HTTP请求,并根据配置文件(struts-...