`
xfjt297857539
  • 浏览: 153143 次
  • 性别: 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
分享到:
评论

相关推荐

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

    这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本概念。在Struts2的配置文件(如struts.xml)中,每个Action可以有多个结果,每个结果对应一个特定的视图。Result配置...

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

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

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

    本教程主要围绕"传智播客_result的各种视图转发类型及全局"展开,这涉及到Struts2框架中的Action结果处理方式以及全局配置。 首先,Struts2中的Action结果类型是连接Action和视图的桥梁。当一个Action执行完毕后,...

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

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

    struts2 Result类型

    在Struts2中,业务逻辑通常封装在Action类中,Action类负责处理用户请求并返回一个结果。这个结果可以是成功的处理、错误的提示,或者是重定向到其他页面。Result类型就是用来定义这些结果的处理方式。 Struts2内置...

    struts2中result类型之redirectAction

    通过分析`redirectActionTest`文件,我们可以深入理解Struts2中`redirectAction` Result类型的实现和应用场景,包括配置、工作流程以及优缺点。实践这些知识可以帮助我们更有效地构建和维护Struts2驱动的Web应用。

    struts2 result type 介绍

    在Struts2中,Result Type是控制流程的重要部分,用于定义动作执行后如何转发或重定向到特定的视图。这篇博客文章将深入探讨Struts2的Result Type,以及它在实际应用中的工作原理。 首先,我们需要了解Struts2的...

    Struts2 Result类型

    Struts2 Result类型是Struts2框架中一个关键的概念,它是控制Action执行后响应到何处的重要组件。在处理用户请求并执行相应的业务逻辑后,Action需要将结果返回给客户端,而Result类型就是用来定义这个返回过程的...

    ·Struts2配置文件介绍 超级详细

    - **Interceptor**:在`package`元素内部,可以定义拦截器或引用拦截器堆栈,拦截器是Struts2中非常重要的组件,用于在Action执行前后进行一系列的前置和后置处理操作,比如登录验证、数据校验等。 - **Result ...

    struts2的result标签使用

    在Struts2中,`Result`标签是核心组件之一,用于定义动作执行后如何跳转到相应的视图。让我们深入探讨一下`Result`标签的使用以及在Struts2框架中的作用。 ### 1. Struts2框架概述 Struts2框架基于MVC设计模式,...

    struts2中jsp和freemarker模板视图的案例

    在Struts2中,配置Freemarker视图涉及到在`struts.xml`配置文件中设置`result`类型为`freemarker`,并指定对应的模板文件路径。在模板文件中,使用Freemarker语法(如`${}`)来引用Action的属性。案例中的Freemarker...

    Struts2包和配置文件

    同时,`struts.xml`文件中的配置会指导Struts2如何处理请求和响应,你需要在这里定义Action、结果类型、拦截器栈等。 总之,Struts2包和配置文件为你提供了构建高效、结构化的Web应用的工具和蓝图。通过合理的配置...

    一个简单的struts2的手动配置

    比如,在Action类上使用`@Action`注解,或者在方法上使用`@Result`注解,可以避免在`struts.xml`中手动配置。这样可以提高代码的可读性和可维护性。 对于国际化支持,Struts2提供了一种机制来处理不同语言环境下的...

    struts2 在eclipse 配置成功

    在Eclipse这个流行的Java集成开发环境中配置Struts2,可以帮助开发者更高效地构建动态Web项目。以下将详细介绍如何在Eclipse中成功配置Struts2。 1. **环境准备**: - 首先确保你的系统上已经安装了Java JDK和...

    struts2的配置信息

    3. `ognl.jar`:Object-Graph Navigation Language (OGNL) 是Struts2中的表达式语言,用于在视图和模型之间传递数据。 4. `freemarker.jar`:FreeMarker是Struts2默认使用的模板引擎,用于生成动态HTML或其他格式的...

    Struts2零配置

    在传统的Struts2应用中,开发者需要在多个XML文件中配置Action、结果页面、拦截器等,而“零配置”则是对这种繁琐配置的优化。 **一、Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的...

    STRUTS2:零配置插件CodeBehind

    本文将详细介绍Struts2中的两个插件——Zero Config(零配置)与CodeBehind,以及它们如何共同工作以减少配置文件的复杂度。 #### 二、Zero Config插件介绍 Zero Config插件的主要目的是减少甚至消除`struts.xml`...

    struts2包及配置

    Struts2内置了多种Result类型,如dispatcher(默认,转发到JSP)、stream(流式结果,常用于文件下载)。 3. **Interceptor**: 拦截器是Struts2的一大特色,它可以实现AOP(面向切面编程)的特性。例如,验证、日志...

    struts2配置文件

    在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-config.xml`。这些XML文件定义了Action、结果类型、拦截器和包等元素,从而控制应用程序的行为。 *...

    freemarker与struts2详细配置

    **FreeMarker与Struts2的整合配置详解** ...通过这些配置和使用技巧,你可以高效地利用FreeMarker与Struts2进行Web开发,实现强大的视图层功能。记住,实践是检验配置正确性的最好方式,所以动手尝试并调试你的代码吧!

Global site tag (gtag.js) - Google Analytics