1. Struts2结果页面的配置
在sturts.xml文件中,<result>的配置非常简单,使用<result>元素来配置接口返回的逻辑视图名称与物理视图之间的映射。<result>元素可以有name和type属性,但这两种属性都不是必选的:
- name属性:指定逻辑视图的名称,默认值为success。
- type属性:指定返回的视图资源的类型,不同的类型代表不同的结果输出,默认值是dispatcher。
struts.xml文件中的<result>元素配置代码如下所示:
<action name="strutsDemo" class="cn.joker.demo1.StrutsDemo">
<result name="success" type="dispatcher">/hello.jsp</result>
</action>
在上述配置中,使用了<result>元素的name、type属性。其中,为Action配置了name为success的result映射,该映射的值可以是JSP页面,也可以是一个Action的name值。用type属性指定了该result的结果类型为dispatcher,它也是默认的结果类型。
在结果页面的配置中,Struts2有两种配置的方式,一种称为全局结果页面,一种称为局部结果页面。全局结果是指在这个包下的所有返回相同字符串的值,都可以向这个页面来进行跳转。局部结果是指在某个Action中返回的字符串的值,会向这个页面跳转。
2. 全局结果页面
全局结果页面是指在同一个包下面配置的Action中返回相同的字符串的值,都可以跳转到该页面,需要通过<global-results>进行配置。
<global-results>
<result name="success">/success.isp</result>
</global-results>
3. 局部结果页面
局部结果页面是指在某个Action中根据该字符串的值进行页面的跳转,只对这个Action有效。
<action name="strutsDemol" class="cn.joker.demo1.StrutsDemo">
<result name="success" type="dispatcher">/hello.jsp</result>
</action>
在Struts2中,当框架调用Action对请求进行处理后,就要向用户呈现一个结果视图。在Struts2中,预定义了多种ResultType,其实就是定义了多种展示结果的技术。在Struts2中常用的ResultType如下所示:
- dispatcher:转发,type的默认值。Action -> JSP
- redirect:重定向到一个URL,被跳转的页面中丢失传递的信息。Action -> JSP
- chain:多个Action之间跳转,被跳转的Action中仍能获取上个页面的值,如request信息。Action -> Action
- redirectAction:重定向到一个Action,跳转的过程中丢失传递的信息。Action -> Action
- stream:文件下载时候使用的。