dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp)
Xml代码 :
<result name="success">/main.jsp</result>
<result name="success">/main.jsp</result>
以上写法使用了两个默认,其完整的写法为:
<result name="success" type="dispatcher">
<param name="location">/maini.jsp</param>
</result>
用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存着。
location只能是页面,不能是另一个action(可用type="chain"解决)。
redirect 类型用于重定向到一个页面,另一个action或一个网址。
Xml代码:
<result name="success" type="redirect">aaa.jsp</result>
<result name="success" type="redirect">bbb.action</result>
<result name="success" type="redirect">www.baidu.com</result>
缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。
处理方法:
(方法一):
<result name="topic" type="redirect">/topicAction!findTopics.do?topicId=${topicId}</result>
(方法二):
<result name="topic" type="redirect-action">
<param name="actionName">findTopics</param>
<param name="topicId">${topicId}</param>
</result>
redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action
Xml代码:
<result name="err" type="redirect-action">
<param name="actionName">重定向的Action名</param>
<param name="namespace">重定向Action所在的名字空间</param>
</result>
redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。
chain 用于把相关的几个action连接起来,共同完成一个功能。
Xml代码:
<action name="step1" class="test.Step1Action">
<result name="success" type="chain">step2.action</result>
</action>
<action name="step2" class="test.Step2Action">
<result name="success">finish.jsp</result>
</action>
处于chain中的action属于同一个http请求,共享一个ActionContext
plaintextj 结果类型用于直接在页面上显示源代码
Xml代码:
<result name="err" type="plaintext">
<param name="location">具体的位置</param>
<param name="charSet">字符规范(如GBK)</param>
</result>
分享到:
相关推荐
`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理策略,使得开发者可以根据需求选择合适的方式。 首先,我们来看几个常见的返回...
在使用 chain 时,多个 action 之间的数据传递可以通过两种方式实现: 1. 由于 chain 中的 action 属于同一个 HTTP 请求,共享一个 ActionContext,故可以在上下文中获取。在页面上可以直接使用。 例如: ...
Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....
2. **chain**: Chain Result Type允许你链式执行多个Action,无需返回到客户端。`class="com.opensymphony.xwork2.ActionChainResult"`。这样可以在一个流程中连续执行多个业务操作。 3. **freemarker**: ...
- **Type Conversion原理**:Struts 2框架提供了强大的类型转换功能,可以自动将表单提交的数据转换为Action类所需的属性类型。 - **自定义转换器**:开发者还可以通过实现TypeConverter接口来自定义转换器,以支持...
- `<result name="success" type="redirectAction">action2.action</result>`:表示当action1执行成功后,会触发一个重定向,跳转到`action2.action`。 - **注意**:在这种情况下,无法直接通过struts.xml配置文件...
struts2 跳转类型 result type chain dispatcher redirect redirect action
### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...
开发者可以根据需求选择合适的Result类型,通过在`struts.xml`配置文件中定义result元素,指定name(通常为Action的返回码)和type(对应Result类型),以及对应的资源路径,来实现Action执行后的页面跳转或数据处理...
<result name="success" type="chain"> <param name="actionName">${session.nextAction} </result> ``` ### 四、示例代码分析 1. **实体类User**: ```java public class User { private int userId; ...
在Struts2中,Result主要负责将处理后的数据传递给相应的视图,如JSP、HTML或者其他的静态资源。Result类型是通过配置在Action类的execute方法返回值或者struts.xml配置文件中定义的。默认情况下,如果未明确指定...
在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...
OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,用于在Action和视图之间传递数据。它可以方便地访问对象属性,进行条件判断和算术运算,使得数据操作更加灵活。 **数据校验** Struts2提供了...
5. **结果类型**(Result Types):Struts2支持多种结果类型,例如dispatcher、redirect、chain等,用于控制Action执行后的页面跳转。 #### 五、Struts2的配置详解 - **配置文件**:Struts2的配置文件是框架的核心...
最后,OGNL(Object-Graph Navigation Language)是Struts2中用于表达式语言的组件,它允许在Action、值栈和视图之间轻松地访问和操作对象属性。例如,我们可以在JSP页面上直接使用OGNL表达式来显示模型数据,或者在...
Action 之间的跳转是 Struts2 框架中的一种机制,允许不同的 Action 之间进行跳转,以实现复杂的业务逻辑。这种机制可以分为两种类型:chain 和 redirect-action。 1. Chain 类型 当 type 为 chain 时,说明是 ...
这个拦截器会自动解析请求中的multipart/form-data类型的数据,将文件内容转换为Action类中的属性。你需要在Action类中定义一个`File`或`CommonsMultipartFile`类型的属性,用来接收上传的文件。 以下是一个简单的...