在strust.xml
文件中,Result
的配置非常简单,使用<result>
元素来配置Result
逻辑视图和物理视图之间的映射,<result>
元素中有name
和type
两个属性,但都不是必须的。
-
name
属性:指定逻辑视图的名称,默认为success
-
type
属性:指定返回的视图资源的类型,不同的类型代表不同的输出结果,默认为dispatcher
在结果页面的配置中,Struts2有两种配置方式,分别为全局结果页面配置和局部结果页面配置。
- 全局结果:这个包下的所有返回相同字符串的值,都可以向这个页面进行跳转
- 局部结果:指在某个Action中返回的字符串的值,会向这个页面跳转
全局结果页面
指在同一个包下面配置的Action
中返回相同字符串值,都可以跳转到这个页面,需要通过<global-results>
进行配置。
<global-results>
<result name="success">success.jsp</result>
</global-results>
局部结果页面
指在某个Action
中根据该字符串的值进行页面跳转,只对这个Action
有效。
<action name="test" class="com.happ.demo.result.ResultDemo1Action" method="execute">
<result name="success" type="dispatcher">success.jsp</result>
</action>
常见ResultType
在Struts2中,当框架调用Action对请求进行处理后,一般需要向用户呈现一个结果视图。Struts2预定义了多种ResultType,其实就是定义了多种展示结果的技术。
一个结果类型就是实现了com.opensymphony.xwork2.Result
接口的类,Struts2把内置的<result-type>
都放在struts-default
包中,struts-default
包就是配置包的父包,这个包定义在struts2-core-2.3.24.jar
包中的根目录下的struts-default.xml
文件中,可以找到相关的<result-type>
的定义。
每个<result-type>
元素都是一种视图技术或跳转方式的封装,其中name
属性指出在<result>
元素中如何引用这种视图技术或跳转方式,对应着<result>
元素的type
属性。在Struts2中预定于的ResultType
如下所示:
属性 | 说明 |
---|---|
chain | 用来处理Action链,被跳转的Action中仍能获取上个页面的值,如request信息 |
dispatcher | 用来转向页面,通常处理JSP,默认结果类型 |
redirect | 重定向到一个URL,被跳转的页面中丢失传递的信息 |
redirectAction | 重定向到一个Action,跳转的页面中丢失传递的信息 |
freemarker | 用来整合FreeMarker模板结果类型 |
httpheader | 用来处理特殊的HTTP行为结果类型 |
stream | 向浏览器发送InputStream对象,通常用拉埃处理文件下载,还可用于Ajax数据 |
velocity | 用来整合Velocity模板结果类型 |
xslt | 用来整合XML/XSLT模板结果类型 |
plainText | 显示原始内容,例如文件源代码 |
postback | 使得当前请求参数以表单形式提交 |
其中前四个,使用相对较多,后面的了解即可。
Result
相关配置就简单介绍到这了。