DispatchAction和ForwardAction

添加功能的步骤:做页面——编写DAO类中的方法——编写和配置action。

如果多个action 使用一个formbean,这种事儿多发生在统一模块中,就可以用一个Action集中处理多个操作,而不要创建多个Action,是代码结构更加简洁。

可以使用 DispatchAction,需要引入struts-extras-1.3.10.jar

这个jar在struts 的blank 示例项目中没有可以在lib中找到,将其导入,有了该jar包才能以下的类 org.apache.struts.action.DispatchAction

于是后台action代码可以放在一个Action中如下:

  1 package action;
  2
  3 import javax.servlet.http.HttpServletRequest;
  4 import javax.servlet.http.HttpServletResponse;
  5
  6 import org.apache.struts.action.ActionForm;
  7 import org.apache.struts.action.ActionForward;
  8 import org.apache.struts.action.ActionMapping;
  9 import org.apache.struts.actions.DispatchAction;
 10
 11 import dao.UserDAO;
 12 import myuser.User;
 13
 14 public class UserAction extends DispatchAction {
 15
 16     /**
 17      * 添加用户
 18      * @param mapping
 19      * @param form
 20      * @param request
 21      * @param response
 22      * @return
 23      * @throws Exception
 24      */
 25     public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request,
 26             HttpServletResponse response) throws Exception {
 27         User user = (User)form;
 28         UserDAO dao = new UserDAO();
 29         dao.addUser(user);
 30         return mapping.findForward("list");//跳转到userlist.jsp页面
 31     }
 32
 33     /**
 34      * 检查用户名是否存在
 35      * @param mapping
 36      * @param form
 37      * @param request
 38      * @param response
 39      * @return
 40      * @throws Exception
 41      */
 42     public ActionForward checkExists(ActionMapping mapping, ActionForm form, HttpServletRequest request,
 43             HttpServletResponse response) throws Exception {
 44         User user = (User)form;
 45         UserDAO dao = new UserDAO();
 46         String rel = dao.checkExists(user) ? "1" : "0";
 47         response.getWriter().write(rel);
 48         return null;
 49     }
 50
 51     /**
 52      * 删除用户
 53      * @param mapping
 54      * @param form
 55      * @param request
 56      * @param response
 57      * @return
 58      * @throws Exception
 59      */
 60     public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request,
 61             HttpServletResponse response) throws Exception {
 62         User user = (User)form;
 63         UserDAO dao = new UserDAO();
 64         dao.deleteUser(user);
 65         return null;
 66     }
 67
 68     /**
 69      * 获取用户信息
 70      * @param mapping
 71      * @param form
 72      * @param request
 73      * @param response
 74      * @return
 75      * @throws Exception
 76      */
 77     public ActionForward getUserInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request,
 78             HttpServletResponse response) throws Exception {
 79         User user = (User)form;
 80         UserDAO dao = new UserDAO();
 81         user = dao.getUserInfo(user);
 82         request.getSession().setAttribute("user",user);
 83         return mapping.findForward("updateUser");
 84     }
 85
 86     /**
 87      * 修改用户
 88      * @param mapping
 89      * @param form
 90      * @param request
 91      * @param response
 92      * @return
 93      * @throws Exception
 94      */
 95     public ActionForward modify(ActionMapping mapping, ActionForm form, HttpServletRequest request,
 96             HttpServletResponse response) throws Exception {
 97         User user = (User)form;
 98         UserDAO dao = new UserDAO();
 99         dao.updateUser(user);
100         return mapping.findForward("list");
101     }
102
103 }

struts-config文件的配置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3  <!DOCTYPE struts-config PUBLIC
 4      "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
 5      "http://struts.apache.org/dtds/struts-config_1_3.dtd">
 6  <struts-config>
 7      <form-beans>
 8          <form-bean name="user" type="myuser.User"/>
 9      </form-beans>
10
11      <global-forwards>
12          <forward name="list" path="/userlist.jsp"/>
13      </global-forwards>
14
15      <action-mappings>
16         <action path="/user" type="action.UserAction" name="user" parameter="op">
17             <forward name="updateUser" path="/updateUser.jsp" redirect="true"/>
18         </action>
19         <action path="/main" type="org.apache.struts.actions.DispatchAction" parameter="/WEB-INF/page/main.jsp" />
20      </action-mappings>
21  </struts-config>

访问的话就是譬如:user.do?op=add,注意:parameter参数配置的就是操作op,op的值就是方法名。

通过DispatchAction,可以将多个使用同样formbean的action整合成一个action

org.apache.struts.action.ForwardAction 就是可以将jsp文件放置到 /WEB-INF下面,然后通过路径进行访问,配置如上,但是我访问main.do的时候出异常了,原因还没找到。

代码链接:http://pan.baidu.com/s/1jHPe18q 提取码:ekyn

时间: 2024-07-29 12:16:46

DispatchAction和ForwardAction的相关文章

Struts学习DispatchAction之入门篇

步骤: 一.创建JavaWeb工程: 二.创建FormBean代码如下 /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.zkj.struts.form; import org.apache.struts.action.ActionForm; /** * MyEclipse Struts Creation date: 04-24-2015 * * XDoc

Struts 1之DispatchAction

DispatchAction是struts 1 的内置通用分发器 import org.apache.struts.actions.DispatchAction; public class UserAction extends DispatchAction { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse res

Struts1中通过DispatchAction实现数的运算

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. Struts1中通过DispatchAction实现数的运算

有关struts中DispatchAction的用法小结

今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Action中,通过传入的不同参数来觉得执行哪个操作.     DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注与实际操作的方法,        1.首先要一个DispatchAction的子类,它含有一些方法,l

Struts1应用、实现简单计算器、使用DispatchAction、显示友好的报错信息、使用动态Form简化开发

实现简单的支持加.减.乘.除的计算器 复制一份Struts1Demo修改:Struts1Calc 方案1: Struts1Calc 创建ActionForm: CalcForm extends ActionForm, num1 num2,生成getter setter: 创建4个Action,在页面中,通过JavaScript控制提交到不同的Action Bean. AddAction: public class AddAction extends Action { @Override publ

DispatchAction跳转

一:编写界面 login.jsp <body> <h1>用户登录</h1> <form action="/dispatchAction/loginandLoginout.do?flag=userLogin" method="post"> u:<input type="text" name="name"/><br/> p:<input type=&qu

struts1.3中使用DispatchAction的一个问题

最近做项目发现我们公司的项目是用struts1写的,在多方百度下,总有理解了struts1.3的DispatchAction的用法 一:struts.xml文件的配置 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN&q

DispatchAction

同一个Action完成对数据的增.删.改.查,其实就是开发一个DispatchAction的子类,这里的方法与execute方法同参.同返回值,在配置中需要在action标签下添加parameter属性 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foudation//DTD Struts Configu

Struts1.3——DispatchAction、DynamicForm和全局跳转

1.DispatchAction-分派Action 1.1 为什么需要DispatchAction 如果每个请求都对应一个Action,就会造成action过多,程序显得比较臃肿,所以可以把一类请求写到一个action中处理,即DispatchAction 在没有使用框架之前,当我们通过一个控制器处理多个请求的时候,我们是通过在URL后面跟上参数来区别不同的操作,比如,下述链接: http://localhost:8080/UserManager/main?operateId=add&uid=1