ActionForward的使用
1、ActionForward包含转向信息
2、全局forward和局部forward
* 全局forward,若很多个Action处理完后都要转向到某页面,不妨把该页面设为全局forward:
<global-forwards>
<forward name="login" path="/login.jsp" redirect="true"/>
</global-forwards>
* 局部forward:
<action path="/login"
type="cn.huan.struts.LoginAction"
name="loginForm"
scope="request"
>
<forward name="success" path="/login_success.jsp"/>
<forward name="error" path="/login_error.jsp"/>
</action>
* mapping.findForward方法会先自动找配置中的局部forward,若没有就找全局forward
3、转发和重定向
转向:同一个request
重定向:需设置redirect="true",另建一个新request,故改变了url
4、转发和重定向都可以自己定义而不用struts提供的ActionForward
在Action中自定义转向:
RequestDispatcher dispatcher = request.getRequestDispatcher("/mustlogin.jsp");
dispatcher.forward(request, response);
return null;
在Action中自定义重定向:
response.sendRedirect(request.getContextPath() + "/login.jsp");
return null;
5、struts-config.xml文件和web.xml文件在运行时都不能动态修改,也就是不能再在Action中改已配置好的属性值
6、动态ActionForward
不需要修改Action代码和增加<forward>配置
例如:如果需要根据页面输入的值动态的跳转到不同页面:
<form action="dynaactionforward.do" method="post">
页面:<input type="text" name="page"><br>
<input type="submit" value="提交">
</form>
则用动态ActionForward可很好地实现,Action和配置信息分别为(其中注释部分为没有使用动态 ActionForm时的代码):
Action代码:
package cn.huan.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* 动态ActionForwad测试
* @author 刘银环
*
*/
public class DynaActionForwardTestAction extends Action {
/* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String page = request.getParameter("page");
// ActionForward af = null;
// if("1".equals(page)){
// af = mapping.findForward("page1");
// }else if("2".equals(page)){
// af = mapping.findForward("page2");
// }
// return af;
//动态ActionForward
ActionForward af = new ActionForward();
af.setPath("/page" + page + ".jsp");
return af;
}
}
配置信息:
<action path="/dynaactionforward"
type="cn.huan.struts.DynaActionForwardTestAction">
<!--
<forward name="page1" path="/page1.jsp"/>
<forward name="page2" path="/page2.jsp"/>
-->
</action>
分享到:
相关推荐
初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用...
《初识好朋友--计算机》是一堂面向初学者的IT入门课程,主要目的是让学生掌握计算机的基础知识,包括计算机的组成、开关机方法,并初步理解机房的基本要求。这堂课的教学设计紧密围绕技术主题,旨在激发学生的兴趣,...
本节我们将初识Struts2,了解其核心概念、工作原理以及如何开始使用。 **1. Struts2 概述** Struts2是Apache软件基金会下的开源项目,它是Struts1的升级版,弥补了Struts1在功能和灵活性上的不足。Struts2提供了...
### 视频压缩标准-初识-详解-国标 #### 视频压缩标准初识 视频压缩技术是一项至关重要的技术,它使得高质量的视频内容能够通过有限的存储空间和带宽资源进行高效传播。随着互联网的发展,视频内容的需求急剧增加,...
初学者通过“初识Spring框架-资料.rar”这个压缩包,可以系统地了解和学习Spring的基本概念、核心特性以及在实际开发中的应用。 1. **Spring概述**: Spring最初由Rod Johnson创建,旨在解决企业应用开发的复杂性...
### 第10课-初识画图软件-教学设计 #### 教学目标 - **知识与技能**: - 学会启动画图软件,理解其主要功能,并熟悉画图软件的操作界面。 - 掌握调整画布大小的方法。 - 使用画图软件绘制“云”和“雨”,并扩展...
1、hive的产生背景 2、hive的定义 3、hive的本地安装 4、hive的基本类型 5、hive的基本命令
这个“第01章 初识Cocos2d-X.zip”压缩包内容可能包含了对Cocos2d-X的基础介绍和入门教程,帮助初学者了解并开始使用这个框架。 1. **Cocos2d-X概述** Cocos2d-X是Cocos2d-x项目的一部分,由C++编写,支持iOS、...
在初识人工智能的过程中,理解决策树算法至关重要,因为它易于理解,可解释性强,同时在处理分类问题时表现出良好的效果。 首先,决策树由内部节点(表示属性测试)、分支(代表特定属性的输出)和叶节点(代表类别...
Java 语言以其“一次编译,到处运行”的特性在编程界占据着重要地位。这是因为Java程序首先被编译成与平台无关的字节码(.class文件),这些字节码随后在任何支持Java的平台上由Java虚拟机(JVM)执行。...
windows
### 初识 Spring Security #### 一、Spring Security 概述 **Spring Security**是一种广泛应用于Java企业级项目中的安全框架,它基于Spring AOP(面向切面编程)和Servlet过滤器来提供全面的安全解决方案。该框架...
Java ASM 是一个强大的字节码操控和分析框架,主要用于动态生成和修改Java字节码。这个库被广泛应用于创建元编程框架、代码分析工具、性能监控工具以及测试框架等领域。ASM能够直接操作字节码,使得开发者可以实现对...
【初识移动互联网】 移动互联网,顾名思义,是指通过移动通信设备(如智能手机、平板电脑)接入互联网,提供各种服务和应用的领域。它的发展速度极快,改变了人们的生活方式,工作模式,以及信息获取和交流的方式。...
#### 二、初识Struts2配置文件 **1. web.xml文件** - 主要配置StrutsPrepareAndExecuteFilter,这是一个过滤器,负责初始化整个Struts框架并处理所有请求。 - 可以通过初始化参数来指定加载额外的XML配置文件,...
typedef的用法 typedef 是 C 和 C++ 语言中的一个关键字,用于为数据类型定义一个新的名称。这可以使得代码更加简洁和可读。通过使用 typedef,我们可以为基本数据类型、结构体、联合体等定义别名,这样在后续的代码...
提供了常用方法:创建主题:删除主题:列出所有可用的主题:查看主题的信息:查询配置信息:修改配置信息:增加分区:管理主题【创建主题】:创建一个分区数为4、副本因子
Photoshop CS是Adobe公司开发的一款强大的平面图像处理软件,广泛应用于专业设计领域,包括平面设计、网页设计、数码暗房、建筑效果图后期处理和影像创意等。自1990年首次发布以来,Photoshop不断更新,CS2版本即9.0...