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中如下:
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的更多相关文章
- Struts ForwardAction Example
In Struts MVC model, you have to go thought the Action Controller to get a new view page. In some ca ...
- Struts之ForwardAction
在Struts中,通过action跳转jsp,但是有时希望仅仅只是跳转页面,而不需要action,这时可以用ForwardAction. 定义一个仅仅是跳转的ForwardAction如下: < ...
- 层层递进Struts1(七)详解DispatchAction
通过前面几篇博客,不知道大家有没有发现这个问题,虽然现在可以灵活控制跳转了,但是Action的数量还是比较多,如何既能保证跳转灵活,还能减少Action的数量?这就是我们这篇博客所说的Dispatch ...
- 有关struts中DispatchAction的用法小结
今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...
- Struts1应用、实现简单计算器、使用DispatchAction、显示友好的报错信息、使用动态Form简化开发
实现简单的支持加.减.乘.除的计算器 复制一份Struts1Demo修改:Struts1Calc 方案1: Struts1Calc 创建ActionForm: CalcForm extends Act ...
- Struts 1之DispatchAction
DispatchAction是struts 1 的内置通用分发器 import org.apache.struts.actions.DispatchAction; public class UserA ...
- 11.使用ForwardAction实现页面屏蔽。
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 我们在jsp页面之间写链接总会是.../xxx.jsp,而如果我们想屏蔽掉具 ...
- Struts DispatchAction Example
The DispatchAction class (org.apache.struts.actions.DispatchAction) provides a way to group all rela ...
- Struts dispatchAction
在Struts中定义动态Action,不用定义多个Action,可以实现一个action,多个跳转. 在定义时,继承DispatchAction,并定义parameter的名字 在jsp页面选择act ...
随机推荐
- HDU - 5686-Problem B (递推+高精)
度熊面前有一个全是由1构成的字符串,被称为全1序列.你可以合并任意相邻的两个1,从而形成一个新的序列.对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列. Input 这里包括多组测 ...
- apache 2.4 访问权限配置
在apache 2.4里,访问权限配置与2.2不同,如果设置不对,则会报403错误,日志中会报 AH01630: client denied by server configuration. [S ...
- git 项目常用命令
git remote -v 查看对应的远程仓库 git fetch origin master 将某个远程主机的更新,全部取回本地 git merge origin master 合并分支 git a ...
- hdu-1022-栈
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- 中间件使用之(UA,IP,selenium)的使用
一.UA池:User-Agent池 - 作用:尽可能多的将scrapy工程中的请求伪装成不同类型的浏览器身份. - 操作流程: 1.在下载中间件中拦截请求 2.将拦截到的请求的请求头信息中的UA进行篡 ...
- Python入门笔记——(2)列表和元组
一.序列 python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.序列中每个元素被分配一个序号即索引,第一个索引为0,第二个为1,以此类推.也可以 ...
- Python获取当前时间及格式化
1.导入time模块 # 导入time模块 import time 2.打印时间戳-time.time() # 导入time模块 import time # 打印时间戳 print(time.time ...
- mysql explain工具使用
explain工具可以确认执行计划是否良好,查询是否走了合理的索引.查询的执行计划,随着数据的变化也可能会有变化.调用方式:explain + [sql语句]. 另外,explain是有局限性的:1. ...
- oracle 日志文件
--Oracel Grid 11.2的Agent有多个,其中有两个最重要:orarootagent.oraagent --它们有各自的日志文件,这些Agent的日志文件位于: $grid_home/l ...
- (转)模块readline解析
模块readline解析 原文:https://www.cnblogs.com/fireflow/p/4841413.html readline模块定义了一系列函数用来读写Python解释器中历史命令 ...