16、struts2的result类型
概念:服务器端跳转(forword): 跳转时,地址栏不发生改变。客户端跳转(redirect),在跳转时,地址栏会发生改变。
Action 中表示跳转的目的地使用了在 l 配置的字符串, 格式为: <result name=”” type=””></result>,type 可以有多种选择,Struts2 支持各种视图技术,例如 JSP、JSF、XML 等,默认的是 JSP。
常见的 type 类型配置如下:
dispatcher(访问jsp,服务器端跳转)
转发到 JSP 页面,和<jsp:forward page=””/>的效果一样,是默认类型。
<result>/Success.jsp</result> --默认name=“success”
<result name=”a”>/Success.jsp</result>
<result name=”b” type=”dispatcher”>/Success.jsp</result>
redirect(访问jsp,客户端跳转)
重定向到 JSP 页面,和 response.sendRedirect(“”)的效果一样。
<result name=”a” type=”redirect”>/Success.jsp</result>
redirectAction(action的客户端跳转)
重定向到 action,目的地为 Action,配置时可以指定如下两个参数:actionName-重定向 的
Action 名;namespace-重定向的 Action 所在的命名空间。
<result name=”a” type=”redirectAction”>
<param name=”actionName”>myaction</param>
<param name=”namespace”>/test</param>
</result>
chain(action的服务器端跳转)
转发到 action,形成 action-chain,可以指定两个参数:actionName-重定向的 Action 名; namespace-重定向的 Action 所在的命名空间。
<result type=”chain”>
<param name=”actionName”>myaction</param>
<param name=”namespace”>/test</param>
</result>
stream
用于向页面返回一个 InputStream,原始数据直接传递给 HttpServletResponse,这种结果 类型在用户下载文件(例如 PDF 文件等)等情况下非常有意义。
<result name=”a” type=”redirectAction”>
<param name=”actionName”>myaction</param>
<param name=”namespace”>/test</param>
</result>
chain(action的服务器端跳转)
转发到 action,形成 action-chain,可以指定两个参数:actionName-重定向的 Action 名; namespace-重定向的 Action 所在的命名空间。
<result type=”chain”>
<param name=”actionName”>myaction</param>
<param name=”namespace”>/test</param>
</result>
stream
用于向页面返回一个 InputStream,原始数据直接传递给 HttpServletResponse,这种结果 类型在用户下载文件(例如 PDF 文件等)等情况下非常有意义。
<result name=”success” type=”stream”>
<param name=”contentType”>image/jpg</param>
<param name=”inputName”>imageStream</param>
<param name=”contentDisposition”>filename=”document.pdf”</param>
<param name=”buffersize”>1024</param>
</result>
plaintext
用于输出目的地 JSP/HTML 的源代码内容,可以指定两个参数:location-目的地 JSP/HTML,charSet-输出内容时使用的字符集。
<result name="success" type="plaintext">
<param name="location">/Success.jsp</param>
<param name="charset">utf-8</param>
</result>
除了上述类型以外,还支持如下的类型:
chart:用于整合 JFreeChart 的 result 类型;
<param name=”contentType”>image/jpg</param>
<param name=”inputName”>imageStream</param>
<param name=”contentDisposition”>filename=”document.pdf”</param>
<param name=”buffersize”>1024</param>
</result>
plaintext
用于输出目的地 JSP/HTML 的源代码内容,可以指定两个参数:location-目的地 JSP/HTML,charSet-输出内容时使用的字符集。
<result name="success" type="plaintext">
<param name="location">/Success.jsp</param>
<param name="charset">utf-8</param>
</result>
除了上述类型以外,还支持如下的类型:
chart:用于整合 JFreeChart 的 result 类型;
freemarker:用于整合 FreeMarker 的 result 类型;
httpheader:用于处理特殊 http 行为的 result 类型;
jasper:用于整合 JasperReport 的 result 类型; jsf:用于整合 JSF 的 result 类型;
tiles:用于整合 Tiles 的 result 类型;
velocity:用于整合 Velocity 的 result 类型;
xslt:用于整合 XML/XSLT 的 result 类型。
这些视图技术的支持,有些还需要导入相应的插件包,即 Struts2 提供的含有 plugin 字 样的 jar 包。
httpheader:用于处理特殊 http 行为的 result 类型;
jasper:用于整合 JasperReport 的 result 类型; jsf:用于整合 JSF 的 result 类型;
tiles:用于整合 Tiles 的 result 类型;
velocity:用于整合 Velocity 的 result 类型;
xslt:用于整合 XML/XSLT 的 result 类型。
这些视图技术的支持,有些还需要导入相应的插件包,即 Struts2 提供的含有 plugin 字 样的 jar 包。
1、 复制上一个项目,命名为Struts15_ResultType,修改l
<package name="struts15" namespace="/" extends="struts-default"> <default-action-ref name="index"></default-action-ref> <action name="index"> <result name="success"> /index.jsp </result> </action> <action name=jsp创建"action"> <result name="success" type="dispatcher"> /action.jsp </result> </action> <action name="disp"> <result name="success" type="dispatcher"> /dispatcher.jsp </result> </action> <action name="redi"> <result name="success" type="redirect"> /redirect.jsp </result> </action> <action name="chn"> <result name="success" type="chain">action</result> </action> <action name="redi_a"> <result name="success" type="redirectAction"> <param name="actionName">action</param> <param name="namespace">/</param> </result> </action> </package> |
2、 创建几个jsp视图文件。
index.jsp
<body> <h2>ResultType</h2><br> <a href="disp" target="_blank">dispatcher</a><br> <a href="redi" target="_blank">redirect</a><br> <a href="chn" target="_blank">chain</a><br> <a href="redi_a" target="_blank">redirectAction</a><br> </body> |
action.jsp
<body> <h2>this is action.jsp</h2><br> </body> |
redirect.jsp
<body> <h2>this is redirect.jsp</h2><br> </body> |
dispatcher.jsp
<body> <h2>this is dispatcher .jsp</h2><br> </body> |
3、 输入网址测试:localhost:8080/Struts15_ResultType/
4、相关参考资料:F:\开发工具\struts-2.1.6\docs\docs\result-types.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论