Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
来源:互联网 发布:网络奇谈恐怖鸟 编辑:程序博客网 时间:2024/05/01 11:20
本文为原创,如需转载,请注明作者和出处,谢谢!
上一篇:Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
启动Tomcat后,在IE中输入如下的URL来测试程序:
http://localhost:8080/samples/moreSubmit.jsp
为了区别提交请求参数和其他参数,在<html:submit>标签的property属性值还可以有一个后缀“.x”(<action>元素的parameter属性值仍然是“print, save”。如“打印”按钮的代码可以写成如下形式:
下一篇:Struts1.x系列教程(21):使用MappingDispatchAction类调用不同的Action方法
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
上一篇:Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
虽然LookupDispatchAction类可以很好地处理拥有多个提交按钮的Form,但是必须要和属性文件相关联,而且还得在getKeyMethodMap方法中进行key和Action方法的映射,使用起来十分不方便。从Struts1.2.9开始,加入了另一个用于处理多个提交动作的EventDispatchAction类。这个类也是DispatchAction的子类,它在使用上要比LookupDispatchAction类容易的多。EventDispatchAction类的基本原理是通过<action>元素的parameter属性指定多个动作,中间用逗号(,)分隔。每个动作实际上就是<html:submit>标签的property属性值。这样EventDispatchAction类就可以根据每个<html:submit>标签的属性值来确定用户按的是哪个提交按钮了。
我们可以按如下三步来使用EventDispatchAction类。
【第1步】实现EventDispatchAction的子类
在<samples工程目录>/src/action目录中建立一个MyEventDispatchAction.java文件,代码如下:
package action;
import java.io.PrintWriter;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
public class MyEventDispatchAction extends EventDispatchAction
{
// 处理print动作
public ActionForward print(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("打印成功!");
}
catch (Exception e)
{
}
return null;
}
// 处理save动作
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("保存成功!");
}
catch (Exception e)
{
}
return null;
}
}
import java.io.PrintWriter;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
public class MyEventDispatchAction extends EventDispatchAction
{
// 处理print动作
public ActionForward print(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("打印成功!");
}
catch (Exception e)
{
}
return null;
}
// 处理save动作
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("保存成功!");
}
catch (Exception e)
{
}
return null;
}
}
在MyEventDispatchAction类中有两个方法:print和save,分别用来处理property属性值为“print”和“save”的<html:submit>标签提交的请求动作。
【第2步】配置EventDispatchAction类
打开struts-config.xml文件,在 <action-mappings>元素中加入如下的内容:<action name = "firstValidatorForm" path="/event"
type="action.MyEventDispatchAction" validate="false" parameter="print,save"/>
type="action.MyEventDispatchAction" validate="false" parameter="print,save"/>
【第3步】实现有多个提交按钮的JSP页面
在Web根目录中建立一个moreSubmit.jsp文件,代码如下:
<%@ page pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>多提交演示</title>
</head>
<body>
<html:form action="event" >
name:<html:text property="name" /> <p>
<html:submit property="print" value="打印"/>
<html:submit property="save" value="保存"/>
</html:form>
</body>
</html>
在编写moreSubmit.jsp文件时要注意,“打印”和“保存”按钮的property属性必须和<action>动作中的parameter参数值一致。也就是“print”和“save”。<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>多提交演示</title>
</head>
<body>
<html:form action="event" >
name:<html:text property="name" /> <p>
<html:submit property="print" value="打印"/>
<html:submit property="save" value="保存"/>
</html:form>
</body>
</html>
启动Tomcat后,在IE中输入如下的URL来测试程序:
http://localhost:8080/samples/moreSubmit.jsp
为了区别提交请求参数和其他参数,在<html:submit>标签的property属性值还可以有一个后缀“.x”(<action>元素的parameter属性值仍然是“print, save”。如“打印”按钮的代码可以写成如下形式:
<html:submit property="print.x" value="打印"/>
下一篇:Struts1.x系列教程(21):使用MappingDispatchAction类调用不同的Action方法
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
- Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
- Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
- Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
- strus-------EventDispatchAction,使用EventDispatchAction类处理一个form多个submit
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts2教程2:处理一个form多个submit
- Struts1.x系列教程(24):配置文件总结
- Struts1.x系列教程(23):使用Tiles模板进行布局
- Struts 2杂谈(2):如何向标签文件中的Struts 2标签传递参数值
- Struts1.x系列教程(22):Tiles框架简介
- Struts1.x系列教程(21):使用MappingDispatchAction类调用不同的Action方法
- Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度
- Struts1.x系列教程(18):使用DispatchAction类调用多个Action方法
- 花钱最少的推广方式(2)电子书营销(下)
- Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
- Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序
- 花钱最少的推广方式(2)电子书营销(上)
- Struts1.x系列教程(15):使用DownloadAction类统计文件下载次数