- 浏览: 782844 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (258)
- J2SE (18)
- J2EE (33)
- AJAX (4)
- JQuery (1)
- DWR (3)
- Linux/Unix (32)
- PHP (1)
- JSF (8)
- Oracle (34)
- JavaScript (17)
- 批处理 (13)
- ASP (7)
- VBScript (3)
- SqlServer (9)
- Ant (1)
- JDBC (1)
- XML (0)
- MySql (0)
- hibernate (9)
- windows (6)
- .net (0)
- 测试 (2)
- 汇编 (2)
- 网络 (13)
- 其它 (11)
- IDE工具 (6)
- freemarker (4)
- 存储过程 (1)
- 生活 (9)
- python (11)
最新评论
-
d99520y:
hdd unlock我这直接提示can't open driv ...
用PC3000和HDD Unlock解笔记本硬盘密码 -
javaersu:
几个学习Shell的不错网站:shell为您提供了对UNIX系 ...
shell脚本实例 -
zh89233:
一段恶意脚本的分析及思考 -
tiancaicao:
hdd unlock老要联网,一联网就说我这破解不了,让我付费 ...
用PC3000和HDD Unlock解笔记本硬盘密码 -
pythoner126com:
不错,学习了,跟这个作者写的有点像,http://www.yi ...
python对文件进行读写操作
注意:以下两个例子在调试的过程中用的是同一个form和struts-config.xml,在调试的过程中DispatchAction是不用资源文件ApplicationResources.properties的,而LookupDispatchAction是要用到ApplicationResources.properties
先来说说DispatchAction,网上的许多例子都是和超链接来做的,其实用DispatchAction用按钮也是可以实现的,来看例子吧!
UserManagement.jsp
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>DispatchAction Example - viralpatel.net</title> </head> <body> <h2> User Management (DispatchAction Example) </h2> <font color="black"><h3> 用struts标签的方法 </h3> </font> <html:form action="/user" method="post"> <html:text property="userName" /> <html:submit property="method" value="create" /> <html:submit property="method" value="delete" /> </html:form> <font color="black"><h3> 不用struts标签的方法 </h3> </font> <form action="/struts_action_test/user.do" method="post"> <input type="text" name="userName"/> <input type="submit" name="method" value="create"/> <input type="submit" name="method" value="delete"/> </form> <font color="blue"><h3> ${message } </h3> </font> 现有以下用户: <c:forEach var="numArray" items="${num}"> <table> <tr> <td> <c:out value="${numArray}" /> </td> </tr> </table> </c:forEach> </body> </html>
UserManagementAction
package com.zgxr.struts; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; public class UserManagementAction extends DispatchAction { // 用于存放添加的用户 List list = new ArrayList(); public ActionForward create(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginActionForm loginActionForm = (LoginActionForm) form; // 将新添加的用户放入list list.add(loginActionForm.getUserName()); request.setAttribute("message", "User created successfully" + ":" + "当前用户数量为:" + list.size()); request.setAttribute("num", list); return mapping.findForward("success"); } public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginActionForm loginActionForm = (LoginActionForm) form; //将提交上来的用户从List中删除 list.remove(loginActionForm.getUserName()); request.setAttribute("message", "User deleted successfully" + ":" + "当前用户数量为:" + list.size()); request.setAttribute("num", list); return mapping.findForward("success"); } }
LoginActionForm:
package com.zgxr.struts; import org.apache.struts.action.ActionForm; public class LoginActionForm extends ActionForm { // 定义两个变量,这两个值与页面上的html:text的property的值相对应 private int numOne; private int numTwo; private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getNumOne() { return numOne; } public void setNumOne(int numOne) { this.numOne = numOne; } public int getNumTwo() { return numTwo; } public void setNumTwo(int numTwo) { this.numTwo = numTwo; } }
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="loginActionForm" type="com.zgxr.struts.LoginActionForm"> </form-bean> </form-beans> <action-mappings> <action path="/user" parameter="method" name="loginActionForm" type="com.zgxr.struts.UserManagementAction"> <forward name="success" path="/UserManagement.jsp" /> <forward name="failure" path="/UserManagement.jsp" /> </action> <action path="/test" name="loginActionForm" scope="request" parameter="action" type="com.zgxr.struts.TestAction" input="/operation.jsp"> <forward name="success" path="/operation.jsp" /> <forward name="failure" path="/operation.jsp" /> </action> </action-mappings> <message-resources parameter="ApplicationResources" /> </struts-config>
好了把以上这些拷下来试试吧,下面我们来看看LookupDispatchAction
operation.jsp
%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>LookupDispatchAction Example - viralpatel.net</title> </head> <body> <h2> User Management (LookupDispatch Action Example) </h2> 用struts标签的方法 <html:form action="/test" method="post"> <html:text property="numOne"/> <html:text property="numTwo"/> <html:submit property="action"> <bean:message key="button.sum"/> </html:submit> <html:submit property="action"> <bean:message key="button.minus"/> </html:submit> <html:submit property="action"> <bean:message key="button.multiply"/> </html:submit> <html:submit property="action"> <bean:message key="button.divide"/> </html:submit> </html:form> 不用struts标签的方法 <form name="loginActionForm" method="post" action="/struts_action_test/test.do> <input type="text" name="numOne"/> <input type="text" name="numTwo"/> <input type="submit" name="action" value="sum"/> <input type="submit" name="action" value="minus"> <input type="submit" name="action" value="multiply"/> <input type="submit" name="action" value="divide"/> </form> </body> </html>
TestAction:
package com.zgxr.struts; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.LookupDispatchAction; public class TestAction extends LookupDispatchAction { @Override //用于关联按键和方法 protected Map getKeyMethodMap() { Map map = new HashMap(); //如果按钮标题的key为button.sum. 则提交该按钮时对应sum方法 map.put("button.sum", "sum"); //如果按钮标题的key为button.minus. 则提交该按钮时对应minus方法 map.put("button.minus", "minus"); //如果按钮标题的key为button.multiply. 则提交该按钮时对应multiply方法 map.put("button.multiply", "multiply"); //如果按钮标题的key为button.divide. 则提交该按钮时对应divide方法 map.put("button.divide", "divide"); return map; } public ActionForward sum(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //将form转变成提交时用到的loginActonForm LoginActionForm loginActionForm = (LoginActionForm) form; //计算加法 int num = loginActionForm.getNumOne() + loginActionForm.getNumTwo(); request.setAttribute("action", num); return mapping.findForward("success"); } public ActionForward minus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //将form转变成提交时用到的loginActonForm LoginActionForm loginActionForm = (LoginActionForm) form; //计算减法 int num = loginActionForm.getNumOne() - loginActionForm.getNumTwo(); request.setAttribute("action", num); return mapping.findForward("success"); } public ActionForward multiply(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //将form转变成提交时用到的loginActonForm LoginActionForm loginActionForm = (LoginActionForm) form; //计算乘法 int num = loginActionForm.getNumOne() * loginActionForm.getNumTwo(); request.setAttribute("action", num); return mapping.findForward("success"); } public ActionForward divide(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //将form转变成提交时用到的loginActonForm LoginActionForm loginActionForm = (LoginActionForm) form; //计算除法 int num = loginActionForm.getNumOne() / loginActionForm.getNumTwo(); request.setAttribute("action", num); return mapping.findForward("success"); } }
ApplicationResources.properties
button.sum=sum button.minus=minus button.multiply=multiply button.divide=divide
好了就这么多了哦忘了web.xml了
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/UserManagement.jsp</welcome-file> </welcome-file-list> </web-app>
大家要注意了在不用struts标签的时候,form提交的路径要注意具体见以上代码
发表评论
-
将svn的服务加到windows中
2010-04-29 15:09 1321见代码 sc create svnserve binpath ... -
webwork中action result type
2010-04-13 09:25 4142和Webwork1.x不同,Webwork2的Action执行 ... -
struts2中的method
2010-03-22 17:43 2164现对struts2中的method进行总结: 1、当不使用通 ... -
在jsf中使用tiles时应该注意的问题
2010-01-07 10:04 1242大家都知道在使用tiles的时候要建立一个模板,在建立模板的时 ... -
Spring中的mappingResources和mappingDirectoryLocations
2010-01-06 16:53 2430这两个是有本质区别的,光看名字也能看出来,哈哈,好了,入正题: ... -
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
2009-11-27 08:52 15310java.lang.ClassNotFoundExceptio ... -
软件开发两种模式之我见
2009-11-24 10:38 1417软件开发的两种模式: 1、 dao— ... -
开发中各种错误状态的说明
2009-11-10 14:44 1168这里面有你平时没有遇到过的问题 -
showModalDialog使用讲解
2009-11-03 16:24 1123基本介绍: showModalDialog() ... -
"|"不能做为分割符
2009-11-03 11:59 1337今天在做项目的时候,需要将前台页面上的值传到后台,于是开始拼接 ... -
Publishing failed with multiple errors和Timeout waiting for Tomcat v5.5的解决方法
2009-11-02 10:59 3043今天早上来到公司,和往常一样打开我的Eclipse,就在这个时 ... -
eclipse 无法启动 JVM terminated. Exit code=1 的解决办法
2009-10-15 08:42 1447今天早上一来和往常一样打开电脑,打开Eclipse准备开始工作 ... -
用iframe实现页面无刷新效果的表单提交
2009-10-14 09:03 2306其实要实现这个效果是很简单的,在页面的form中添加一个i ... -
Project facet Java 6.0 is not supported的解决方案
2009-08-25 11:16 3973在Eclipse中做项目时遇到了“Project facet ... -
花生壳+tomcat实现外网访问内网
2009-08-19 22:22 3524打开server.xml修改内容如下: <Engine ... -
struts-ActionForm:reset()详解
2008-09-23 16:42 1149ActionForm 的要求创建一个ActionForm 并不 ... -
用Javascript实现菜单折叠效果
2008-10-06 17:21 1621在网上看了好多用Javascript实现菜单折叠的例子都特别的 ... -
Servlet中的两个init()方法
2008-10-08 11:16 1413在Servlet的GenericServleta类中有两个in ... -
PO、VO、FormBean的思考
2009-05-13 15:34 1111PO是持久化对象,它只 ... -
web.xml配置文件详解
2009-05-13 14:59 3014web.xml文件对于配置任何 ...
相关推荐
### DispatchAction、LookupDispatchAction、SwitchAction 的应用详解 #### 一、DispatchAction 的应用 **DispatchAction** 是 Struts 框架中一个非常有用的类,它位于 `org.apache.struts.actions` 包中。其核心...
在实际的Web应用程序开发中,通常一个URL对应一个Action,而`DispatchAction`则允许一个Action处理多个不同的请求,每个请求映射到Action中的不同方法,提高了代码的可维护性和组织性。 `DispatchAction`的核心机制...
public class LookupDispatchAction extends DispatchAction { public ActionForward method1(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ...
在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种...在项目中,`DispathAction.ppt`可能包含关于`DispatchAction`的详细讲解和示例,而`dispacthertest`可能是与这两个组件相关的测试代码或示例应用。
ActionServlet根据配置的ActionMapping来找到对应的DispatchAction实例,然后解析请求中的参数,比如`action`或`method`,这个参数就是用来指定要执行的子方法的名称。 以下是一个简单的DispatchAction使用步骤: ...
struts1学习资料:里面包含struts源码工程 ActionServlet DispatchAction Action LookUpDispatchAction的用法 还包含html logic bean tiles标签的详细使用方法和validate验证框架的具体案例
Struts DispatchAction是一个在Struts框架中非常重要的概念,它是一种控制器组件,用于处理来自用户的...然而,随着技术的发展,如Struts2的出现,开发者可以选择更现代和模块化的解决方案来代替传统的DispatchAction。
Struts框架是Java Web开发中一个非常重要的MVC(Model-View-Controller)框架,它为开发者提供了一种结构化的方式来组织和管理应用程序。在早期的Struts版本中,`DispatchAction`类是一个核心组件,它允许我们通过...
在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过大时,为提高用户体验,将数据分成若干部分逐页展示的一种技术。在Web应用中,用户可以逐...
同时,Spring的配置文件(applicationContext.xml)会定义Bean,包括Action类的实例,以及可能的数据源和事务管理器。Hibernate的配置(hibernate.cfg.xml)则包含了数据库连接信息和实体映射。 在实际开发中,你...
在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...
1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ``` 2. **实现DispatchAction**:接下来,你需要创建一个继承...
- `LookupDispatchAction` 实例化后,会根据配置文件中的 `<action>` 元素寻找匹配的方法。不同于常规的 `DispatchAction`,它不是通过请求参数来选择执行哪个方法,而是基于请求的Action路径的最后一个部分。 - ...
在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...
解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。
03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar
Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性
ECharts API文档与实例是学习和掌握ECharts的关键资源,帮助开发者实现各种复杂的可视化需求。 一、ECharts API介绍 ECharts的API主要分为两类:配置项(Options)和方法(Methods)。配置项用于定义图表的样式和...
为了简化Action和ActionForm的管理,采用DynaActionForm(DynaValidatorForm)和DispatchAction,以及动态验证框架。此外,使用Tiles来构建页面布局,自定义标签处理分页和身份验证,使得UI的构建更加灵活。 2. ...