struts-config.xml中有这样一段代码:
<action input= "/error.jsp " path= "/adminLogout " scope= "request " type= "com.laoer.bbscs.web.action.AdminLogout ">
<forward name= "adminlogin " path= "/adminlogin.jsp " redirect= "true " />
</action>
--------------------------
为什么 <forward /> 的参数里要用redirect= "true "啊?
redirect= "true " 是设置什么的?
于redirect= "false " 用的request and action有什莫不同处 什莫时候用,深莫时候不用
回答(1)ActionMapping
ActionMapping将对Struts应用中有效的业务逻辑进行分类,当一个请求到达时,ActionSevlet在ActionMapping目录中查找对应的信息。ActionMapping是Struts应用的一个核心设计,当需要了解一个Struts应用,或编写一个新的Struts应用的时候,都应该从ActionMapping入手。ActionMapping有较多的属性信息,具体参考相关文档。
ActionForward
ActionForward是Struts的核心类之一,其基类仅有4个属性:name / path / redirect / classname。在基于Struts的Web应用程序开发过程中,Action操作完毕后程序会通过Struts的配置文件struts- config.xml链接到指定的ActionForward,传到Struts的核心类ActionServlet,ActionServlet使用 ActionForward提供的路径,将控制传递给下一个步骤。ActionForward控制接下来程序的走向。ActionForward代表一个应用的URI,它包括路径和参数,例如:
path=“/modify.do?method=edit&id=10”
ActionForward的参数除了在struts-config.xml和页面中设置外,还可以通过在Action类中添加参数,或重新在Action中创建一个ActionForward。
在ActionForward中有一个重要的属性redirect,当redirect=false时,将保存存储在http请求和请求上下文中的所有内容,仅在同一个应用中可用。当redirect=true时,Web客户端进行一次新的http请求,请求的资源可以在同一个应用中,也可以不在,原来的请求参数不再保存,原来的请求上下文也被清除,新的http请求仅包含ActionForward的path属性里所包含的参数。如果在同一个应用中,用户会话的上下文会被维护。
ActionForward分为全局转发和局部转发,Action的Mapping对象的findForward方法首先会检查局部转发列表,查找失败就会到全局转发列表中查找。书写格式中,我们一般将全局变量定义为String常数,避免误解,使得转发列表结构清晰易读。
在项目开发过程中经常碰到一种情况,当页面已经改变了,浏览器中的地址如/modify.do或/modify.jsp却没有变化,当时没有考虑这么细,虽然存在疑问,但没有影响到程序功能的实现,因此忽略过去了,今天查找了一些资料才弄清楚。客户端浏览器显示的是浏览器最后被给定的URL,当URL被提交后,在某个组件返回一个响应给浏览器之前,Web应用可能已经转发请求多次,而这些过程都发生在服务器端,客户端浏览器并不知道有什么变化。当一个 http响应被返回时,它并没有包含地址栏的值,所以浏览器仅仅显示其用来作为初始请求的地址。通过使用redirect可以改变浏览器地址的显示,因为这样可以向浏览器提交一个新的请求,但付出的代价是数据不能通过请求上下文传递到页面,这也是使用forward和redirect的差异之一。
分享到:
相关推荐
通过深入理解和正确配置上述元素,你可以有效地在Struts2框架中利用`<jsp:forward/>`标签实现页面的跳转,避免遇到“no found”的问题。同时,也要注意,在现代Web开发中,更多地使用`<s:redirect/>`标签进行重定向...
### Struts配置文件详解 #### 一、Struts配置文件:`struts-config.xml` `struts-config.xml`是Struts框架的核心配置文件之一,它主要用于定义应用中的表单对象、动作映射以及转发规则等。 ##### 1. `<form-beans...
本文将深入解析Struts1配置文件中的关键组成部分及其配置细节,帮助读者更好地理解和运用这些配置。 #### 二、`<Data-sources>`配置 `<Data-sources>`标签主要用于配置Struts1应用程序的数据源,即与数据库的连接...
此外,还有`<bean:message>`显示资源文件信息,`<bean:resource>`装载Web资源到JavaBean,`<bean:struts>`访问Struts配置对象,以及`<bean:include>`包含Web资源。`<bean:define>`用于定义变量,`<bean:size>`获取...
在这里,`<from>`标签定义了要匹配的原始URL,`<to>`标签定义了重定向的目标URL。`type="redirect"`表示客户端会接收到一个302重定向响应,`%{contextPath}`是当前应用的上下文路径,`${name}`则是从原始URL中提取...
在这篇详尽的讲解中,我们将深入探讨Struts配置文件的关键元素和作用。 1. **struts-config.xml文件**:这是Struts框架的主要配置文件,通常位于Web应用的WEB-INF目录下。这个XML文件包含了所有关于动作映射、数据...
<dispatcher>FORWARD</dispatcher> </filter-mapping> ``` 3. **配置URLRewrite.xml**:创建一个名为`urlrewrite.xml`的配置文件,放在WEB-INF目录下。在这个文件中,定义重写规则。例如,如果我们希望将`/action?...
这里的`<param-value>`指定了Struts的配置文件`struts-config.xml`的位置。 3. 配置`struts-config.xml`:这是Struts的核心配置文件,用于定义Action、Form Bean、Action Mapping等。一个简单的配置示例如下: ```...
- 使用Struts标签时,需要在JSP页面中引入对应的标签库,例如`<%@ taglib prefix="html" uri="/tags/html" %>`。 - 每个标签都有其特定的属性,正确设置这些属性才能确保标签正常工作。 - 在处理表单时,Struts会...
3. Struts2的执行流程:后台接收到request,经过Struts2的前置控制器StrutsPrepareAndExecuteFilter解析请求路径,去Struts2的配置文件中找对应的namespace和action的name属性,然后再找到对应的class和method,执行...
struts-config.xml是Struts框架的核心配置文件,它定义了Action类、Form Bean、Action Mapping以及数据源等关键组件。例如,你可以在这里声明一个Action,指定它的类路径和处理请求的URL,同时配置表单Bean,以处理...
- `tools`:可能包含了一些开发工具或辅助资源,如Struts1相关的IDE插件、配置文件模板等。 - `struts_taglib`:这个目录可能包含了Struts1的标签库JAR文件,它是使用Struts1标签所必需的库。 了解并熟练掌握...
在Struts框架的配置文件`struts-config.xml`中添加如下内容,以确保`ProcessAction`类能够正确地被调用: ```xml <action-mappings> <action parameter="method" path="/process" type=...
#### 五、Action标签中 `<forward>` 子标签与 `<global-forward>` 中 `<forward>` 子标签的区别 - **Action标签中 `<forward>` 子标签**:表示的Web资源只能在本Action中使用。 - **`<global-forward>` 中 `...
#### 四、Struts配置文件中`<action>`元素的属性和子元素详解 - **path属性**:指定请求访问Action的路径。 - **type属性**:指定Action的完整类名。 - **name属性**:指定需要传递给Action的ActionFormBean。 - **...
在Struts1.3版本中,`struts-config.xml`配置文件扮演着至关重要的角色,它是Struts框架的核心配置文件,定义了控制器的行为和应用的结构。 `struts-config.xml`配置详解: 1. **全局常量配置**:此部分用于定义...
URLRewriteFilter的核心在于其规则配置文件`urlrewrite.xml`,通常放在`WEB-INF`目录下。以下是一些常见的规则示例: ```xml <rule> <from>^/oldpath/(.*)$</from> <to>/newpath/$1</to> </rule> <rule> ...
Struts配置文件** Struts的配置文件(通常命名为`struts-config.xml`)是XML格式的文件,用于定义Struts应用的配置信息。它包括ActionMapping、ActionForward等配置项,这些配置项定义了请求URL到具体Action的映射...