`

Result Type(Struts.xml配置)

阅读更多
一个提交到服务器的处理通常可以分为两个阶段:
第一个阶段查询服务器状态(查询或者更新数据库)
第二个阶段选择一个合适的结果页面其返回给用户(这里要讲的Result的内容)。

Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity等。
Struts2支持的不同类型的返回结果为:
名字
说明
Chain Result
用来处理Action链
Dispatcher Result
用来转向页面,通常处理JSP
FreeMarker Result
处理FreeMarker模板
HttpHeader Result
用来控制特殊的Http行为
Redirect Result
重定向到一个URL
Redirect Action Result
重定向到一个Action
Stream Result
向浏览器发送InputSream对象,通常用来处理文件下载
Velocity Result
处理Velocity模板
XLS Result
处理XML/XLST模板
PlainText Result
显示原始文件内容,例如文件源代码
S2PLUGINS:Tiles Result
结合Tile使用
另外第三方的Result类型还包括JasperReports Plugin,专门用来处理JasperReport类型的报表输出。
在struts-default.xml文件中已经有了对于所有类型Result的定义:
<result-types>
<result-type name="chain"
class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher"
class="org.apache.struts2.dispatcher.ServletDispatcherResult"
default="true"/>
<result-type name="freemarker"
class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader"
class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect"
class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction"
class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream"
class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity"
class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt"
class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText"
class="org.apache.struts2.dispatcher.PlainTextResult" />
<!-- Deprecated name form scheduled for removal in Struts 2.1.0.
The camelCase versions are preferred. See ww-1707 -->
<result-type name="redirect-action"
class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="plaintext"
class="org.apache.struts2.dispatcher.PlainTextResult" />
</result-types>

从上述代码中可以看出在不指定Result类型的时候使用dispatcher类型。
定义一个Result值,
<result name="success" type="dispatcher">
<param name="location">/ThankYou.jsp</param>
</result>

由于type默认值是dispatcher,所以这里不需要定义,另外name的默认值为success所以这里也不需要定义。
上述代码可以简写为:
<result>
<param name="location">/ThankYou.jsp</param>
</result>
另外location参数也可以直接卸载result标签内部,所以上述代码的最简单的写法为:
<result>/ThankYou.jsp</result>
我们也可以定义多个不同的Result
<action name="Hello">
<result>/hello/Result.jsp</result>
<result name="error">/hello/Error.jsp</result>
<result name="input">/hello/Input.jsp</result>
</action>

上述代码的含义为,名字为Hello的Action有三个返回结果,并且都是dispatcher类型(默认类型),这三个返回

值的名字分别为success(默认值),error,input,对应的页面的路径分别

为/hello/Result.jsp,/hello/Error.jsp,/hello/Input.jsp。
有些时候我们需要一个定义在全局的Result,这个时候我们可以在package内部定义全局的Result,例如:
<global-results>
<result name="error">/Error.jsp</result>
<result name="invalid.token">/Error.jsp</result>
<result name="login" type="redirect-action">Logon!input</result>
</global-results>

动态返回结果
有些时候,只有当Action执行完毕的时候我们才知道要返回哪个结果,这个时候我们可以在Action内部定义一个

属性,这个属性用来存储Action执行完璧之后的Result值,例如:
private String nextAction;
public String getNextAction() {
return nextAction;
}

在strutx.xml配置文件中,我们可以使用${nextAction}来引用到Action中的属性,通过${nextAction}表示的内

容来动态的返回结果,例如:
<action name="fragment" class="FragmentAction">
<result name="next" type="redirect-action">${nextAction}</result>
</action>

上述Action的execute方法返回next的时候,还需要根据nextAction的属性来判断具体定位到哪个Action。

引自:http://m.oschina.net/blog/87165
分享到:
评论

相关推荐

    Dom4j解析struts2框架的struts.xml

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的各个组件,如动作(Actions)、结果(Results)、拦截器(Interceptors)等。本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便...

    struts.xml文件详解示例代码

    Struts.xml文件是Apache Struts 2框架的核心配置文件,用于定义应用的MVC(Model-View-Controller)架构和动作映射。它为应用程序提供了一种声明式的方式来配置Struts2的行为,使得开发者能够控制请求如何被处理,...

    struts.xml配置文件详解

    ### Struts.xml配置文件详解 #### 一、Struts配置文件概述 在Struts框架中,`struts.xml`配置文件扮演着极其重要的角色。它主要用于定义应用中的各种配置信息,包括但不限于包(Package)、拦截器(Interceptor)...

    struts2属性文件struts.xml的配置

    ### Struts2属性文件struts.xml的配置 在Java Web开发中,Struts2框架作为MVC模式的一种实现,提供了一种简洁的方式来构建应用程序。其中,`struts.xml`是Struts2的核心配置文件,用于定义项目的包、常量、拦截器等...

    struts2.0中struts.xml配置文件详解

    在深入探讨Struts2.0框架中的`struts.xml`配置文件之前,我们先来了解一下Struts2.0框架的基本概念。Struts2是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用...

    struts2 使用注解现在零配置不需要在使用struts.xml配置文件,可以直接跑

    在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们了解什么是注解(Annotation)。注解是Java提供的一种元数据机制,允许在源代码中嵌入信息,这些信息...

    dom4j解析struts.xml需要的包装类

    在Struts2中,配置文件`struts.xml`扮演着核心角色,它定义了动作(Action)、包(Package)和结果(Result)等关键组件的行为。为了方便地解析和处理这些配置,开发者常常会创建自定义的包装类(Wrapper Class),...

    struts.xml详细配置

    Struts.xml是Apache Struts框架的核心配置文件,用于定义应用的行为和控制器的映射。它在MVC(Model-View-Controller)设计模式中扮演着关键角色,将用户请求与处理这些请求的业务逻辑和视图组件关联起来。在这个...

    对Struts 2.0中的struts.xml配置文件详细说明 2

    Struts 2.0是Java Web开发中广泛使用的MVC框架,它的核心在于`struts.xml`配置文件。这个配置文件扮演着应用的中枢角色,负责定义动作(Actions)、结果(Results)、拦截器(Interceptors)等关键组件,以及它们...

    struts.xml详细说明.doc

    Struts2 框架是基于MVC设计模式的一个强大且灵活的Java Web开发框架,它的核心配置文件是`struts.xml`。这个文件用于定义应用程序的行为,包括Action的映射、结果页面的跳转以及拦截器的配置。以下是关于`struts.xml...

    Struts2.5版本struts.xml与web.xml配置的更改方法

    Struts2.5版本的`struts.xml`配置文件需要使用最新的DTD(Document Type Definition),以确保解析正确。将头部信息的DTD链接更改为: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-/...

    struts2的struts.xml文件的元素结构

    在Struts2中,`struts.xml`文件是核心配置文件,用于定义应用的行为、动作映射、结果类型、拦截器等。这篇博文主要探讨了`struts.xml`文件的元素结构,下面我们将详细解析这些关键元素。 首先,`struts.xml`文件...

    struts.xml详解.doc

    `struts.xml`是Struts2的核心配置文件,它定义了框架的行为、拦截器、Action及其关联的视图等。以下是`struts.xml`文件的详细解释: 1. **DOCTYPE声明**: 第一行的DOCTYPE声明指定了Struts2配置的DTD(文档类型...

    Struts2+Hibernate Action+struts.xml+jsp

    每个Action类都与一个或多个URL路径关联,当用户发起请求时,Struts2会根据配置文件(通常是struts.xml)来决定哪个Action来处理请求。 **Hibernate** 是一个流行的关系型数据库ORM框架,它简化了Java应用中的数据...

    struts.xml文件详解

    DOCTYPE 声明指定了 Struts 2 配置文件遵循的 DTD(Document Type Definition),在这个例子中是 Struts 2.0 的 DTD。这确保了解析器理解配置文件的结构和元素。 2. **&lt;struts&gt; 根元素**: `&lt;struts&gt;` 是整个配置...

    struts-xml.zip

    这个名为"struts-xml.zip"的压缩包包含了关于Struts2配置文件的详细示例源代码,有助于开发者更好地理解和掌握Struts2框架的工作原理。 首先,`struts-xml`通常指的是`struts-config.xml`或`struts2.xml`,这是...

    struts2中两种validation.xml的配置方式

    在Struts2框架中,`validation.xml`是用于定义验证规则的重要配置文件。根据所提供的信息,我们可以了解到文章主要探讨了Struts2中两种不同的`validation.xml`配置方式,并且通过一个具体的例子进行了说明。下面将对...

    struts2 xml

    Struts2是一个强大的MVC框架,它以XML配置文件为核心,允许开发者定义应用程序的行为和结构。在Struts2中,XML配置文件(通常命名为struts.xml)是整个框架的基石,它负责设置Action、拦截器、结果页面以及其他关键...

    struts.xml详解[整理].pdf

    Struts.xml 文件是 Apache Struts 2 框架的核心配置文件,用于定义应用程序的行为、组织Action、拦截器以及结果页面等。以下是该文件中关键元素的详细解释: 1. **DOCTYPE声明**: - 第一行的DOCTYPE声明指定...

    Struts2配置文件

    在Struts2框架中,有两个核心配置文件:`struts.properties`和`struts.xml`,它们是理解并正确配置Struts2应用的关键。 ### `struts.properties`配置文件 `struts.properties`文件主要负责设置Struts2框架的全局...

Global site tag (gtag.js) - Google Analytics