2013年2月18日 天气晴
地点:家 寒假倒计时
Struts 2 第15part Result Types(结果类型)
上一环节是关于Action的学习,这一环节是关于Result的学习。
关于Result结果集,想必很多稍微接触过Struts2的童鞋都应该知道的,比如在Action类当中返回字符串SUCCESS到sturts.xml配置文件当中,并直接跳转到相应页面,这是我们最熟悉的了。但关于struts2的结果集并没有那么简单,它还有其他类型的结果集。下面是小巫从官网截下来的一个文档,详细信息可以访问URL:http://struts.apache.org/development/2.x/docs/action-chaining.html
关于上面这张图,我稍微用自己不能引以为豪的烂英语翻译一下吧:
(1)Chain Result :用于Action的链式处理
(2)Dispacher Result:用于Web资源的整合,包括JSP的整合。这是默认的结果集。
(3)FreeMarker Result:用于FreeMarker的整合。
(4)HttpHeader Result:用于控制特殊的Http行为。
(5)Redirect Result:用于直接跳转另外一个URL(web资源)。
(6)Redirect Action Result: 用于直接跳转到其他Action。
(7)Stream Result:用于向浏览器返回一个InputStream,通常用于文件下载。
(8)Velocity Result:用于与Velocity的整合。
(9)XSL Result:用于与XML/XSLT整合的结果类型。
(10)PlainText Result:用于显示某个页面的源代码。
(11)Tiles Result:提供与Tiles的整合。
那好,关于Struts2的结果类型差不多就是以上11种,有些常用的比如Dispacher、Redirect等。
在官方文档中,都有详细的实例和说明,小巫不能一一翻出来,小巫也处于学习状态,菜鸟级别,有需要的可以到官网查看。
下面是一个简单的实例:Struts2_ResultType
首先来看index.jsp
- <?xml version="1.0" encoding="GB18030" ?>
- <%@ page language="java" contentType="text/html; charset=GB18030"
- pageEncoding="GB18030"%>
- <% String context = request.getContextPath(); %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
- <title>Insert title here</title>
- </head>
- <body>
- Result类型
- <ol>
- <li><a href="r/r1">dispatcher</a></li>
- <li><a href="r/r2">redirect</a></li>
- <li><a href="r/r3">chain</a></li>
- <li><a href="r/r4">redirectAction</a></li>
- <li>freemarker</li>
- <li>httpheader</li>
- <li>stream</li>
- <li>velocity</li>
- <li>xslt</li>
- <li>plaintext</li>
- <li>tiles</li>
- </ol>
- </body>
- </html>
只做了前面4中类型的Result, 都是链接到命名空间为r下的action当中。
这四个链接会分别显示什么效果呢?
先来看看配置文件struts.xml
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <constant name="struts.devMode" value="true" />
- <package name="resultTypes" namespace="/r" extends="struts-default">
- <action name="r1">
- <result type="dispatcher">/r1.jsp</result>
- </action>
- <action name="r2">
- <result type="redirect">/r2.jsp</result>
- </action>
- <action name="r3">
- <result type="chain">
- <param name="actionName">r1</param>
- <param name="namespace">/r</param>
- </result>
- </action>
- <action name="r4">
- <result type="redirectAction">
- <param name="actionName">r2</param>
- <param name="namespace">/r</param>
- </result>
- </action>
- </package>
- </struts>
这里先说明一下,可能因为Struts2本身的修正,有些东西被摒弃了,所以才会报错,就拿上面的chain类型的结果集来说,如果没有增加多两行参数,一个是actionName,一个是namespace,那就会报错滴。后来修正过来也就没问题了。
现在说明一下这个实例的跳转效果:
(1)dispacher:直接跳转到r1.jsp,显示路径为:http://localhost:8080/Struts2_ResultType/r/r1
(2)redirect:直接跳转到r2.jsp,显示路径为:http://localhost:8080/Struts2_ResultType/r2.jsp
(3)chain:间接跳转到r1.jsp,显示路径为:http://localhost:8080/Struts2_ResultType/r/r3
(4)redirect Action:间接跳转到r2.jsp,显示路径为http://localhost:8080/Struts2_ResultType/r2.jsp
关于Result Type就总结到这里。进入下一part,Global Result.
转载于:https://blog.51cto.com/wwj9520/1134865
Struts2结果类型详解
本文介绍了Struts2框架中的11种结果类型,包括DispatcherResult、RedirectResult等,并通过实例展示了不同结果类型如何实现页面跳转。

169

被折叠的 条评论
为什么被折叠?



