首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-24 
struts2中result配置的各种视图转发类型result配置类似于struts1中的forward,但struts2中提供了多种结果类

struts2中result配置的各种视图转发类型
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"method="userEdit"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" extends="struts-default"namespace="/secure">???
????<actionname="dashboard" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js">
< src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js">
< 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" 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"namespace="/secure">???
????<-- Redirectto an action in the same namespace -->?
????<actionname="dashboard" />??
??/genReport/generateReport.action?reportType=pie&width=100&height=100??
???-->??
???<actionname="gatherReportInfo" 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

热点排行