在struts中DispatchAction的使用方法?最好有实例代码! 如题,到底对开发的时候,有什么好处么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注与实际操作的方法, 1.首先要一个DispatchAction的子类,它含有一些方法,login,logout,method1, package examples; package examples; import javax.servlet.http.*; import org.apache.struts.action.*; import org.apache.struts.actions.*; public class AccountAction extends DispatchAction { public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 進行一些Login的邏輯 return mapping.findForward("success"); } public ActionForward logout(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 進行一些Logout的邏輯 return mapping.findForward("success1"); } public ActionForward method1(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 進行一些method1的邏輯 return mapping.findForward("success"); } } 一定要注意在DispatchAction中你想执行的操作,都必须要有统一的参数(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response),是一个规定. 2.接下来是配置struts-config.xml <action path="/login" type="examples.AccountAction" name="logonForm" scope="request" parameter="action" input="/pages/dispatch1.jsp"> <forward name="success" path="/pages/success.jsp" /> </action> <action path="/logout" type="examples.AccountAction" name="logonForm" scope="request" parameter="action" input="/pages/dispatch1.jsp"> <forward name="success1" path="/pages/success1.jsp" /> </action> 这里需要注意的就是parameter属性的值,因为这个值要和页面传来的参数对应. 3.再来看看JSP页 pages/dispatch1.jsp <%@ taglib uri="/tags/struts-html" prefix="html" %> <html:link href="/DispathActionTest/login.do?action=login">login</html:link><br> <html:link href="/DispathActionTest/logout.do?action=logout">logout</html:link> 这里要注意几点,首先 ?后面的KEY要和struts-config.xml中的parameter相同,还有它的VALUE要是你在action的一个方法名字,这里方法名为login, 那么在程序运行时就是调用login的操作,如果是logout,那程序就调用logout的操作. DispatchAction是struts里面使用的,你一般不会使用这个的。这个是能根据你的forward的路径,进行dispatch DispatchAction 继承与Action可以减少Action数量,使程序清晰,简洁 同一个模块下 为了 更清晰的 把所有的功能都 整和到一起 所以可以用到它 只不过用的时候要指向一个方法在 config 中加上一个参数 不使用dispatchAction也可以实现的,但是要从页面上传参数,其实都是一样的原理 Servlet修改后,重启服务器,看不到效果 分页存储过程 jsp 获取当前页面的参数?? JSP代码可以嵌到JAVASCRIPT 中吗?(刚开始学JSP) 测试连接SQL Server 2000出现HTTP Status 500 linux中文乱码问题 框架中如何动态显示一个包含的页面啊? 为什么我的程序里会有错,急! javasmartupload如何安装? 页面的权限验证 请问如何根据参数访问不同的数据库服务器 JSP用户退出问题
1.首先要一个DispatchAction的子类,它含有一些方法,login,logout,method1,
package examples;
package examples;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*; public class AccountAction extends DispatchAction {
public ActionForward login(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// 進行一些Login的邏輯
return mapping.findForward("success"); }
public ActionForward logout(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// 進行一些Logout的邏輯
return mapping.findForward("success1"); } public ActionForward method1(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// 進行一些method1的邏輯
return mapping.findForward("success"); }
}
一定要注意在DispatchAction中你想执行的操作,都必须要有统一的参数(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response),是一个规定.
2.接下来是配置struts-config.xml
<action path="/login" type="examples.AccountAction"
name="logonForm"
scope="request"
parameter="action"
input="/pages/dispatch1.jsp">
<forward name="success" path="/pages/success.jsp" />
</action> <action path="/logout" type="examples.AccountAction"
name="logonForm"
scope="request"
parameter="action"
input="/pages/dispatch1.jsp">
<forward name="success1" path="/pages/success1.jsp" />
</action> 这里需要注意的就是parameter属性的值,因为这个值要和页面传来的参数对应. 3.再来看看JSP页 pages/dispatch1.jsp
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<html:link href="/DispathActionTest/login.do?action=login">login</html:link><br>
<html:link href="/DispathActionTest/logout.do?action=logout">logout</html:link>
这里要注意几点,首先 ?后面的KEY要和struts-config.xml中的parameter相同,还有它的VALUE要是你在action的一个方法名字,这里方法名为login, 那么在程序运行时就是调用login的操作,如果是logout,那程序就调用logout的操作.
可以减少Action数量,使程序清晰,简洁