STRUTS2 前端转向
今天还是在看关于STRUTS2的转向问题。。因为项目里写得比较乱。。很晕
同时里面的STRUTS.XML的配置比较乱和不全。。又重新学习和复习了下
所以整理了下从JSP到ACTION再到REPORT的流程
1 转向问题
STRTUS2 XML 控制转向的文件中可以定义控制RETURN 的入口字符串
RESULT NAME = 对应某个JSP或URL
比如
<action name="cpuLoadAction" class="cpuLoadActionBean">
<result name="input">/stat/CPULoadForm.jsp</result>
<result name="success">/stat/CPULoadList.jsp</result>
<result name="free">/stat/CPULoadFList.jsp</result>
</action>
也可以定义全局的转向
<global-results>
<result name="nolicense">/jsp/nolicense.jsp</result>
<result name="forward">${url}</result>
</global-results>
2 其实底层还是JSP/SERVLET的转向
forward,include,redirect是jsp中web页面(jsp或servelt)的三种不同的路由关系,三个貌似相同,其实还是有许多差别的,而了解这些细微的差别,在web开发中是很重要的。
说明:
一、forward、include由javax.servlet.RequestDispatcher来封装,由包容器container提供RequestDispatcher接口的实现,其中声明如下:
void forward(ServletRequest req,ServletResponse res)
void include(ServeltRequest req,ServletResponse res)
可以通过两种方式得到RequestDispatcher:
1、ServletContext.getRequestDispatcher(String path);
其中这里的path必须开始为"/",即这里的path必须相对于context的root.
2、ServeltRequest.getRequestDispatcher(String path)
这里的path可以为相对路径,如果path开始为"/",则也认为是从context的root开始的。
二、Redirect由HttpServletResponse.sendRedirect(String location)来支持
差别:
三个都可以对用户的request进行转发,但是还是有许多的不同,差别最主要集中在如下几个方面:
1、forward与include共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范 围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。
2、forward与include基本上都是转发到context内部的资源,而redirect可以重定向到外部的资源,如: req.sendRedriect("http://www.mocuai.com");
Forward功能的实现,这样
private void setForward(String url,ServletRequest request, ServletResponse response)throws Exception {
HttpServletRequest hreq = (HttpServletRequest) request;
RequestDispatcher dispatcher = hreq.getSession().getServletContext().getRequestDispatcher(url);
dispatcher.forward(request,response);
附网上摘录的STRUTS 转向配置的一些变量含义
STRUTS2 框架本身定义了以下的
SUCCESS : 表示ACTION相关代码正确执行和返回(这个是默认的)
NONE:表示执行后不返回到任何页面
ERROR:表示ACTION执行出现错误。返回错误视图
LOGIN:表示因为没有登录而出错。。会返回到此页面要求登录
INPUT:表示需要参数输入的界面。。通常如果没有获得相关的输入参数。会返回到这个页面要求输入参数
<result name="forward" type="">
type 默认为 dispatcher (foward/include) 转向为JSP文件,范围包含REQUEST/SESSION的东西
redirect 重定向到JSP ,只能保存SEESION中的数据
redirect-action 重定向至特定的ACTION
分享到:
相关推荐
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。在构建SSH框架时,每个框架都扮演着不同的角色,以提供一个高效、可扩展的后端架构。现在我们来详细了解一下搭建SSH...
F:\JavaWeb教程\ssh-jar\struts-2.2.3.16-all\struts-2.2.3.16\lib下面找到以下包 commons-fileupload-1.2.1.jar//文件上传时用的,为了以后用到,最好加入 commons-io-1.3.2.jar//同上 commons-logging-1.0.4.jar ...
可用于 搭建ssh框架struts2-spring-plugin-2.5.14.jar
struts2-sshstruts2-sshstruts2-ssh
- 此步骤会自动添加Struts2的相关库,并在`src`目录下生成`struts.xml`配置文件,同时在`web.xml`中配置Struts2的过滤器。 3. **配置Struts2** - 在Struts2的配置界面,可以选择Struts2的版本和所需的Jar包。 - ...
Struts2是Apache软件基金会的一个开源项目,它是基于MVC设计模式的Web应用框架,是对Struts1的升级版。Struts2提供了更强大的Action类支持,可以方便地实现业务逻辑与视图的解耦。它的核心是基于拦截器的架构,使得...
总的来说,"STRUTS-2.3.1.2-PART1"压缩包为开发者提供了全面的Struts 2资源,涵盖了从运行环境到开发辅助的所有要素。无论你是新手还是经验丰富的开发者,这个包都能帮助你更好地理解和利用Struts 2框架,提升你的...
### MyEclipse开发SSH2(Struts2+Spring+Hibernate)教程精析 #### 一、开发环境准备 在深入探讨如何使用MyEclipse构建SSH2框架(Struts2 + Spring + Hibernate)之前,首要任务是确保开发环境的正确搭建。本教程...
最新 struts2 spring3 hibernate4 环境增删查改web开发 在开发环境:eclipse4+tomcat7+struts2+spring3+hibernate4+SQL2005 增删查改web开发简单示例,所括所有的包。下载后修改applicationContext.xml连接数据库的...
Struts 2是Apache软件基金会下的一个开源项目,它继承了Struts 1的优点,并且吸取了其他优秀Web框架的特性,如WebWork,提供了一种更强大、更灵活的Web应用开发解决方案。 在描述中提到的"搭建SSH项目必须jar包",...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)...
绝对是官网最新版本2012年5月9日下载的,方便大家使用,很不错的资源,期待大家分享,只因我们都是ssh人~(所有相关jar包在:struts-2.3.3-all.zip\struts-2.3.3\lib)docs中都有相应的例子,会告诉你怎么用!...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC模式中的视图和控制器,Spring提供依赖注入(DI)和面向切面编程(AOP),而Hibernate则负责对象关系映射...
这个“struts2-jar”压缩包包含了Struts2框架的基本组件和依赖库,是进行SSH(Spring、Hibernate、Struts2)框架集成开发的重要组成部分。 SSH框架是Java企业级开发中常见的三大框架,它们各自负责不同的职责:...
SSH(Struts2、Spring、Hibernate)是一种经典的Java Web开发框架组合,被广泛应用于构建企业级应用程序。这个压缩包包含了SSH中的Struts2的核心jar包,是开发基于Struts2框架的应用程序所必需的组件。 Struts2是...
SSH之Struts1之struts-config.xml常用配置详解(3-21-2008)
SSH(Struts2、Spring3、Hibernate4)是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。这个压缩包包含了SSH框架集成的相关资料,让我们逐一解析其中的知识点。 首先,Struts2是MVC(Model-...
在Java Web开发领域,Spring、Struts2、Hibernate这三大框架的组合,通常被称为SSH(Spring-Struts2-Hibernate),是构建企业级应用的常见选择。Maven作为项目管理和构建工具,能够有效地管理项目依赖,使得SSH整合...
struts2-jasperreports-plugin ssh ireport