Struts2 result视图详解
1 Struts2视图类型
在配置struts.xml文件时,我们要给每个Action配置result,其中result里面的type属性,是指返回的视图资源的类型,不同类型代表不同的结果输出,它的默认值为dispathcer。以下列出Struts2预定义的所有视图资源类型:
属 性 | 说 明 |
---|---|
chain | 用于处理 Action 链,被跳转的 Action 中仍能获取上个页面的值,如 request 信息 |
dispatcher | 用于转向页面,通常处理 JSP,是默认的结果类型 |
freemarker | 用于整合 FreeMarker 模板结果类型 |
httpheader | 用于处理特殊的 HTTP 行为结果类型 |
redirect | 重定向到一个 URL,被跳转的页面中丢失传递的信息 |
redirectAction | 重定向到一个 Action,跳转的页面中丢失传递的信息 |
stream | 向浏览器发送 InputStream 对象,通常用于处理文件下载,还可用于 Ajax 数据 |
velocity | 用于整合 Velocity 模板结果类型 |
xslt | 用于整合 XML/XSLT 结果类型 |
plainText | 显示原始文件内容,如文件源代码 |
postback | 使当前请求参数以表单形式提交 |
2 dispatcher结果类型
dispatcher 是 Struts2 的默认结果类型,它用于表示转发到指定结果资源。
由于 Struts2 在后台使用 RequestDispatcher 的 forward() 方法转发请求,所以在用户的整个请求/响应过程中,保持的是同一个请求对象,即目标 JSP/Servlet 接收到的请求/响应对象与最初的 JSP/Servlet 的请求/响应对象相同。
dispatcher 结果类型的对应类是 org.apache.struts2.dispatcher.ServletDispatcherResult,该类有 location 和 parse 两个属性,可以通过 struts.xml 配置文件中的 <result> 元素的 <param> 子元素设置,代码如下所示:
<result name="success" type="dispatcher">
<param name="location">/success.jsp</param>
<param name="parse">true</param>
</result>
3 redirect结果类型
redirect 结果类型用于重定向到指定的结果资源,该资源可以是 JSP 文件,也可以是 Action 类。使用 redirect 结果类型时,系统将调用 HttpServletResponse 的 sendRedirect() 方法将请求重定向到指定的 URL。
redirect 结果类型的对应类是 org.apache.struts2.dispatcher.ServletRedirectResult。在使用 redirect 时,用户要完成一次和服务器之间的交互,浏览器需要发送两次请求,请求过程如图 1 所示。
另外,Struts2还分为全局视图 与 局部视图
4 全局视图
特点:配置在package下面,全局视图对当前package下的所有Action都生效!
<package name="base" extends="struts-default" namespace="/">
<!-- 全局视图 -->
<global-results>
<result name="login" type="redirect">/login.jsp</result>
</global-results>
5 局部视图
特点:配置在Action下面,局部视图只对当前Action生效!
<action name="save" class="com.yiidian.action.DemoAction" method="save">
<result type="redirectAction">list</result>
</action>
热门文章
优秀文章