一、结果视图配置(Result):

Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,指定下一个页面在那里,也就是:当Action处理结束时,通知系统下一步做什么,状态下一步应该调用那个物理视图资源来显示处理结果。通常是在Struts.xml文件中进行配置。

  

result....../>元素来进行配置,根据其位置的不同,其有提供了两种结果:

局部结果:将<result/>作为<Action />元素的子元素,一个Action可以有多个<result......./> 子元素,即一个Action对应多           个结果。

全局结果:将<result/>作为<global_results....... />元素的子元素

<result......../>元素时需要指定以下两个属性:

:该属性指定所配置的逻辑视图名;(逻辑视图名:指Action中返回的字符串)

:该属性指定结果类型

<action name="loginValidate"
class="com.bank.action.LoginAction">
<result name="cuccess"
type="dispatcher">/login.jsp</result>
       </action>

Struts2中可以省略结果类型,此时系统将使用默认的结果类型,Struts2的默认结果类型为:dispatcher,但此时其只能用于与jsp的视图,若要使用其他视图,如:freemarker、jfreechart时需要配置type属性进行手动指定。同时还可以省略逻辑视图名,此时将使用默认的逻辑视图名,Struts2的默认的逻辑视图名为:success。所以上面的配置可改成以下形式:

<action name="loginValidate"
class="com.bank.action.LoginAction">
<result>/login.jsp</result>
       </action>

二、Struts2支持的结果类型(ResultType):

支持多种视图技术,如:jsp、freemarker、jfreechart、Velocity等。当一个Action 处理用户请求结束后,仅仅返回一个字符串,即逻辑试图名;但该逻辑视图名并未与任何的视图技术及任何的视图资源进行关联。

的结果类型决定了Action处理结束后,下一步将调用那种视图资源来呈现处理结果。

框架提供了大量的默认的结果类型,这些类型定义在struts2-core-版本号.jar

Struts-default.xml文件中。 代码片段如下:

<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" />
</result-types>

以下就常用的结果类型的简单解释:

1、chain:Action链式处理的结果类型(从一个Action跳转到另一个Action,可携带参数)

2、Dispatcher:用于指定是要jsp作为视图的结果类型,相当于请求转发,即将请求转发到指定的jsp资源,可携带参数

3、Freemarker:用于指定是要Freemarker模板作为视图的结果类型

4、Redirect:用于直接跳转到其他URL的结果类型,相当于HttpServletResponse的sendRedirect ()方法,即重定向到指             定的资源,无法携带参数

5、Stream:用于向浏览器返回一个InputStream(一般用于文件下载)

6、Velocity:用于指定是要Velocity模板作为视图的结果类型

7、Xslt:用于与XML、XSLT整合的结果类型