Struts1学习笔记(5)-----用DispatchAction类实现方法的动态分配
来源:互联网 发布:selenium python教程 编辑:程序博客网 时间:2024/05/22 10:47
学习Struts2的动态分配时一直都分不清这其中的关系,学习Struts1的动态分配也是如此,弄了几天才搞定,不容易啊。
所谓方法的动态分配指的是在一个Action类中定义了几个方法,然后我们可以请求不同的参数调用相应的方法,这样可以减少配置文件。想要实现这种效果,我们只需要让Action类继承DispatchActionL类,这个类虽然是抽象类,但是却没有像其他类样提供execute方法。
新建一个类UserForm并让其继承ActionForm类,代码如下所示:
package com.sinosoft.form; import org.apache.struts.action.ActionForm; public class UserForm extends ActionForm { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
新建一个Action类UserAction并让其继承DispatchAction类,在这个类中自定义了3个方法,代码如下所示:
package com.sinosoft.action; 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; import com.sinosoft.form.UserForm; public class UserAction extends DispatchAction { public ActionForwardadd(ActionMapping mapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response){ UserFormuserForm=(UserForm) form; userForm.setMessage("你调用了add方法!"); returnmapping.findForward("success"); } public ActionForwarddelete(ActionMapping mapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response){ UserFormuserForm=(UserForm) form; userForm.setMessage("你调用了delete方法!"); returnmapping.findForward("success"); } public ActionForwardupdate(ActionMapping mapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response){ UserFormuserForm=(UserForm) form; userForm.setMessage("你调用了update方法!"); returnmapping.findForward("success"); }}
新建一个Jsp页面DispatchAction.jsp,页面如下所示:
<%@ page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="html"uri="http://struts.apache.org/tags-html"%> <%@ taglib prefix="bean"uri="http://struts.apache.org/tags-bean"%> <!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>使用DispathAction类</title><script type="text/javascript"> function submitForm(){ document.forms[0].action="userAction.do?method=add"; document.forms[0].submit(); }</script></head><body> <html:form action="/4/userAction"> <table> <tr> <td><bean:write name="userForm"property="message"></bean:write></td> </tr> <tr> <html:submit value="add" onclick="submitForm()"></html:submit> </tr> <tr> <html:submit value="update"property="method" ></html:submit> </tr> <tr> <html:submit property="method">delete</html:submit> </tr> </table> </html:form></body></html>
在配置文件struts-config.xml里这样配置:
<form-beans> <form-bean name="userForm"type="com.sinosoft.form.UserForm"></form-bean> </form-beans> <action-mappings> <action path="/4/userAction"scope="session" parameter="method" input="/4/DispatchActionDemo.jsp"name="userForm" type="com.sinosoft.action.UserAction"> <forward name="success"path="/4/DispatchActionDemo.jsp" /> </action>
好了,打开服务器并部署项目,运行DispatchActionDemo.jsp页面,如下所示:
当我们点击“add”按钮时,将提示你调用了add方法:
点击其他按钮也是如此。
用这种方法要求我们在Action中定义的方法名要和页面form表单按钮的值相同,所以,如果你想把按钮设置为中文名,那么难道你也要把方法也设置为中文吗?显然是不可能的,下节将解决这个问题。
这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7338355,谢谢~
- Struts1学习笔记(5)-----用DispatchAction类实现方法的动态分配
- Struts1学习笔记(6)-----用LookUpDispatchAction类实现方法的动态分配
- Struts1的DispatchAction()方法
- 动态方法调用和使用通配符实现类似struts1.x的dispatchAction功能
- struts1 DispatchAction类例子
- Struts1 DispatchAction类
- Struts1.x系列教程(18):使用DispatchAction类调用多个Action方法
- Struts1.x系列教程(18):使用DispatchAction类调用多个Action方法
- Struts1.x系列教程(18):使用DispatchAction类调用多个Action方法
- Struts1.3-DispatchAction类-根据请求参数实现业务分派
- struts1 DispatchAction
- Struts1 DispatchAction
- Struts1框架七之DispatchAction的说明
- 层层递进Struts1(七)详解DispatchAction
- 解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证
- 解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证
- struts2.0中如何实现struts1.2中dispatchaction的功能
- struts1(11)-----DispatchAction
- DOM
- HOJ The Colored Cubes
- Hadoop-0.20.0源代码分析(01)http://blog.csdn.net/shirdrn/article/details/4569702
- 页面刷新
- Linux中安装新的包时错误提示
- Struts1学习笔记(5)-----用DispatchAction类实现方法的动态分配
- TortoiseSVN的安装和配置
- Java网络编程之TCP协议下—上传文件到服务器程序
- 2012-03-09-3
- 三、窗口与消息源代码
- 换工作了
- Linux5.5下配置Centos的yum源
- 因SAP升级引起SAP通过jco访问java服务端问题
- 程序员学英语三部曲