`
xfjt297857539
  • 浏览: 146688 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts2中result配置的各种视图转发类型

    博客分类:
  • SSH
 
阅读更多
result配置类似于struts1中的forward,但struts2中提供了多种结果类型,如: dispatcher(默认值)、redirect?、 redirectAction?、plainText。
下面是redirectAction?结果类型的例子,如果重定向的action中同一个包下:
<resulttype="redirectAction">helloworld</result>
如果重定向的action在别的命名空间下:
<result type="redirectAction">
<paramname="actionName">helloworld</param>
<paramname="namespace">/test</param>
</result>
如果没有指定result的name属性,默认值为success。
在result中还可以使用${属性名}表达式,表达式里的属性名对应action中的属性。如下:
<resulttype="redirect">view.jsp?id=${id}</result>
<package name="user"namespace="/users/userinfo" extends="struts-default">
?? <action name="helloworld" method="execute"class="com.sxt.HelloWorldAction">
??? <resultname="show">/showMessage.jsp</result>
?? </action>
?? <!--?重定向 -->
?? <action name="redirect">
??? <resulttype="redirect">/showMessage.jsp</result>
?? </action>
?? <!--?重定向到Action -->
?? <action name="redirectAction">
??? <resulttype="redirectAction">helloworld</result>
?? </action>
?? <!--?重定向到不同包的Action -->
?? <action name="redirectPackageAction">
??? <result type="redirectAction">
???? <paramname="namespace">/users/dept</param>
???? <param name="actionName">userDept</param>
??? </result>
?? </action>
?? <!--?参数传值 -->
?? <action name="paramvalue" method="userEdit"class="com.sxt.HelloWorldAction">
??? <result name="userEdit"type="redirect">/userEdit.jsp?userId=${userid}</result>
?? </action>
</package>
<package name="other" namespace="/users/dept"extends="struts-default">
?? <action name="userDept">
??? <result>/userDept.jsp</result>
?? </action>
</package>
链接类型??result:chain
总结:通常从一个action链接到另外一个action
<package name="public"extends="struts-default">???
????<!-- ChaincreatAccount to login, using the default parameter -->??
????<actionname="createAccount" class="...">???
????????<resulttype="chain">login</result>?
???</action>??
????<actionname="login" class="...">???
????????<!--Chain to another namespace -->??
????????<resulttype="chain">???
???????????<param name="actionName">dashboard</param>??
???????????<param name="namespace">/secure</param>??
???????</result>??
???</action>??
</package>??
<package name="secure" extends="struts-default"namespace="/secure">???
????<actionname="dashboard" class="...">???
???????<result>dashboard.jsp</result>??
???</action>??
</package>?
Dispatcher Result???????用来转向页面,通常处理JSP?????
<result name="success"type="dispatcher">???
??<param name="location">foo.jsp</param>??
</result>?

??FreeMarkerResult??处理FreeMarker模板
<result name="success"type="freemarker">foo.ftl</result>??
HttpHeader Result
用来控制特殊的Http行为
<result name="success"type="httpheader">???
??<paramname="status">204</param>?
??<paramname="headers.a">a custom header value</param>??
??<paramname="headers.b">another custom header value</param>??
</result>??
<result name="proxyRequired"type="httpheader">???
??<paramname="error">305</param>?
??<paramname="errorMessage">this action must be accessed through aprozy</param>??
</result>??

Redirect Result
重定向到一个URL
<result name="success"type="redirect">? ?
?? ?<param name="location">foo.jsp</param>
?? ?<param name="parse">false</param>
</result>
< class="javascript">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js">
< class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js">


<package name="passingRequestParameters"extends="struts-default"namespace="/passingRequestParameters">???
???<-- Passparameters (reportType, width and height) -->???
???<!--???
???Theredirect-action url generated will be?
??/genReport/generateReport.jsp?reportType=pie&width=100&height=100???
???-->???
???<actionname="gatherReportInfo" class="...">???
??????<resultname="showReportResult" type="redirect">???
?????????<paramname="location">generateReport.jsp</param>???
?????????<paramname="namespace">/genReport</param>???
?????????<paramname="reportType">pie</param>???
?????????<paramname="width">100</param>??
?????????<paramname="height">100</param>??
?????</result>???
??</action>???
</package>??
Redirect Action Result
重定向到一个Action
<package name="public"extends="struts-default">???
????<action name="login"class="...">???
????????<!--Redirect to another namespace -->??
????????<resulttype="redirectAction">???
???????????<param name="actionName">dashboard</param>??
???????????<param name="namespace">/secure</param>??
????????</result>??
???</action>??
</package>??
<package name="secure"extends="struts-default" namespace="/secure">???
????<-- Redirectto an action in the same namespace -->?
????<actionname="dashboard" class="...">???
???????<result>dashboard.jsp</result>??
????????<result name="error"type="redirectAction">error</result>??
???</action>??
????<actionname="error" class="...">???
???????<result>error.jsp</result>?
???</action>??
</package>??
<package name="passingRequestParameters"extends="struts-default"namespace="/passingRequestParameters">???
???<-- Passparameters (reportType, width and height) -->??
???<!--???
???TheredirectAction url generated will be??
??/genReport/generateReport.action?reportType=pie&width=100&height=100??
???-->??
???<actionname="gatherReportInfo" class="...">???
??????<resultname="showReportResult" type="redirectAction">???
?????????<paramname="actionName">generateReport</param>??
?????????<paramname="namespace">/genReport</param>??
?????????<paramname="reportType">pie</param>??
?????????<paramname="width">100</param>?
?????????<paramname="height">100</param>?
?????????<paramname="empty"></param>?
?????????<paramname="supressEmptyParameters">true</param>??
?????</result>??
??</action>??
</package>?
Stream Result
向浏览器发送InputSream对象,通常用来处理文件下载

<result name="success"type="stream">???
??<paramname="contentType">image/jpeg</param>??
??<paramname="inputName">imageStream</param>??
??<paramname="contentDisposition">attachment;filename="document.pdf"</param>???
??<paramname="bufferSize">1024</param>??
</result>??

Velocity Result
处理Velocity模板
<result name="success"type="velocity">???
??<paramname="location">foo.vm</param>??
</result>??
?
XLS Result
处理XML/XLST模板
<result name="success" type="xslt">???
??<paramname="location">foo.xslt</param>??
??<paramname="matchingPattern">^/result/[^/*]$</param>??
??<paramname="excludingPattern">.*(hugeCollection).*</param>??
</result>??

PlainText Result
显示原始文件内容,例如文件源代码
<action name="displayJspRawContent">??
??<resulttype="plaintext">/myJspFile.jsp</result>??
</action>? ?
<action name="displayJspRawContent">??
??<resulttype="plaintext">???
?????<paramname="location">/myJspFile.jsp</param>??
?????<paramname="charSet">UTF-8</param>?
??</result>??
</action>?
S2PLUGINS:Tiles Result
结合Tile使用
另外第三方的Result类型还包括JasperReportsPlugin,专门用来处理JasperReport类型的报表输出。
<%@ tagliburi="http://tiles.apache.org/tags-tiles" prefix="tiles"%>??
<%@ taglib prefix="s"uri="/struts-tags" %>??
<%-- Show usage; Used in Header --%>??
<tiles:importAttribute name="title"scope="request"/>???
<html>??
???<head><title><tiles:getAsStringname="title"/></title></head>???
<body>??
???<tiles:insertAttribute name="header"/>???
????? <pid="body">???
????????<tiles:insertAttributename="body"/>???
????</p>??
? ? <p>Noticethat this is a layout made in JSP</p>?
</body>??
</html>?

来自:http://www.24xuexi.com/w/2011-06-29/93842.html
分享到:
评论

相关推荐

    struts视频教程_result配置的各种视图转发类型

    esult配置的各种视图转发类型esult配置的各种视图转发类型esult配置的各种视图转发类型

    Struts2--result配置的各种视图转发类型

    NULL 博文链接:https://huangminwen.iteye.com/blog/996219

    传智播客_result的各种视图转发类型及全局

    传智播客_result的各种视图转发类型及全局

    06result配置的各种视图转发类型

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    struts2 详解文档

    result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理流程与Action的管理方式 为应用指定多个配置文件 动态方法调用和使用通配符定义action 请求参数接收 自定义...

    非常不错的中文struts2教程[CHM]

    内容: 1、OGNL —— 数据运转的催化剂 ...4、Struts2中的Action 5、Struts2中的参数传递 6、标签库,永恒的争论话题 7、拦截器详解 8、配置,灵活还是简单? 9、深入plugin 10、在Struts2中使用OGNL

    Struts 2标签的应用

    利用Struts 2标签创建ex3.jsp页面,此页面提交给tag.action,在structs.xml中配置这个action的转发视图为result.jsp在result.jsp页面中显示ex3.jsp页面控件的值。(源代码和实验报告)

    Struts2属性文件详解

    该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...

    Struts2 in action中文版

    6.7.2 Struts 2中常用的表达式语言特性 131 6.7.3 表达式语言的高级特性 135 6.8 小结 137 第7章 UI组件标签 139 7.1 为什么需要UI组件标签 139 7.2 标签、模板和主题 144 7.2.1 标签 146 7.2.2 模板 146 7.2.3 ...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    Struts2\constant应用

    &lt;!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 --&gt; &lt;constant name="struts.i18n.encoding" value="UTF-8" /&gt; ...该属性指定Struts 2中的action由哪个容器创建

    使用Struts2开发RESTful服务

    REST简介资源和标识符操作资源的方式Struts2的REST支持RestActionMapper简介为Struts2应用安装REST插件实现支持REST的Action类实现视图层参考资料从V2.1开始,Struts2开始提供Convention插件,它允许根据“约定”来...

    demo.zip_action

    struts详细的源码,有Action中result的各种转发类型,多个Action共享一个视图--全局result配置,为Action的属性注入值, 4.指定需要Struts 2处理的请求后缀等等。

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书中...

    Struts in Action中文版

    2. 深入 STRUTS架构..................................................................................37 2.1. 随便谈谈......................................................................................

    Java面试宝典2020修订版V1.0.1.doc

    11、struts.xml中result的type有哪些类型? 91 12、什么时候用JDBC什么时候用Hibernete; 91 13、hibernate 数据的三个状态 91 14、Hibernate中load和get的区别? 92 15、Hibernate的工作原理? 92 16、hibernate优...

Global site tag (gtag.js) - Google Analytics