添加功能的步骤:做页面——编写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中如下:

 package 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 dao.UserDAO;
import myuser.User; public class UserAction extends DispatchAction { /**
* 添加用户
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
dao.addUser(user);
return mapping.findForward("list");//跳转到userlist.jsp页面
} /**
* 检查用户名是否存在
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward checkExists(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
String rel = dao.checkExists(user) ? "1" : "0";
response.getWriter().write(rel);
return null;
} /**
* 删除用户
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
dao.deleteUser(user);
return null;
} /**
* 获取用户信息
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward getUserInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
user = dao.getUserInfo(user);
request.getSession().setAttribute("user",user);
return mapping.findForward("updateUser");
} /**
* 修改用户
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward modify(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
dao.updateUser(user);
return mapping.findForward("list");
} }

struts-config文件的配置:

 <?xml version="1.0" encoding="UTF-8"?>

  <!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="user" type="myuser.User"/>
</form-beans> <global-forwards>
<forward name="list" path="/userlist.jsp"/>
</global-forwards> <action-mappings>
<action path="/user" type="action.UserAction" name="user" parameter="op">
<forward name="updateUser" path="/updateUser.jsp" redirect="true"/>
</action>
<action path="/main" type="org.apache.struts.actions.DispatchAction" parameter="/WEB-INF/page/main.jsp" />
</action-mappings>
</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

DispatchAction和ForwardAction的更多相关文章

  1. Struts ForwardAction Example

    In Struts MVC model, you have to go thought the Action Controller to get a new view page. In some ca ...

  2. Struts之ForwardAction

    在Struts中,通过action跳转jsp,但是有时希望仅仅只是跳转页面,而不需要action,这时可以用ForwardAction. 定义一个仅仅是跳转的ForwardAction如下: < ...

  3. 层层递进Struts1(七)详解DispatchAction

    通过前面几篇博客,不知道大家有没有发现这个问题,虽然现在可以灵活控制跳转了,但是Action的数量还是比较多,如何既能保证跳转灵活,还能减少Action的数量?这就是我们这篇博客所说的Dispatch ...

  4. 有关struts中DispatchAction的用法小结

       今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...

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

    实现简单的支持加.减.乘.除的计算器 复制一份Struts1Demo修改:Struts1Calc 方案1: Struts1Calc 创建ActionForm: CalcForm extends Act ...

  6. Struts 1之DispatchAction

    DispatchAction是struts 1 的内置通用分发器 import org.apache.struts.actions.DispatchAction; public class UserA ...

  7. 11.使用ForwardAction实现页面屏蔽。

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 我们在jsp页面之间写链接总会是.../xxx.jsp,而如果我们想屏蔽掉具 ...

  8. Struts DispatchAction Example

    The DispatchAction class (org.apache.struts.actions.DispatchAction) provides a way to group all rela ...

  9. Struts dispatchAction

    在Struts中定义动态Action,不用定义多个Action,可以实现一个action,多个跳转. 在定义时,继承DispatchAction,并定义parameter的名字 在jsp页面选择act ...

随机推荐

  1. 查找表set和map 349, 350

    两类查找问题: 1)查找有无: - 某个元素是否存在,通常使用set(集合) 2)查找对应关系(键值对应) - 某个元素出现了几次,map(字典) set和map都不允许里面的键值重复. 常见操作: ...

  2. 使用xcode测量ios8.1机型时的项目兼容问题

    打开xcode,创建一个新项目 点击左上角的三角形打开模拟器,打开模拟器中的safari,把项目链接输入,即可测试 下面为切换机型的方法:

  3. RESTful和SOAP的区别

    参考:[接口开发]浅谈 SOAP Webserver 与 Restful Webserver 区别 目录 一.Web Service 二.SOAP 三.REST 四.RPC 客户端和服务器端的通讯方式 ...

  4. oracle 查看一个表中的记录是否被锁住

    SELECT a.object_id, a.session_id, b.object_nameFROM v$locked_object a, dba_objects bWHERE a.object_i ...

  5. mysql 数据存储引擎区别

    一,存储类型 二 , MyISAM默认存储引擎 MyISAM 管理非事务表.是ISAM 的扩展格式.除了提供ISAM里所没有的索引的字段管理等的大量功能.MyISAM 还使用一种表格锁定的机制.来优化 ...

  6. (转)CentOS/Linux 解决 SSH 连接慢

    CentOS/Linux 解决 SSH 连接慢 原文:http://blog.csdn.net/doiido/article/details/43793391 现在连接linux服务器一般都是使用SS ...

  7. Java中的时间处理

    日期时间组件使用 java.util.Date:实现类,其对象具有时间.日期组件.java.util.Calendar:抽象类,其对象具有时间.日期组件.java.sql.Date:实现类,其对象具有 ...

  8. Js简易代码生成工具

    代码 javascript:(function(){ document.body.innerHTML = '<textarea id="txtTemplate" style= ...

  9. ife task0003学习笔记(一):JavaScript作用域

    在学习JavaScript作用域概念之前,首先要明白几个概念:执行环境.变量对象.作用域链. 一.JavaScript执行环境(execution context): 在<Professiona ...

  10. mongodb常用语句(集合操作)

    mongodb常用语句(集合操作) 查看集合帮助 db.songs.help(); 查看集合总数据量 db.songs.count(); 查看表空间大小 db.songs.dataSize(); 查看 ...