链接类型 result:chain
总结:通常从一个action链接到另外一个action
<package name="public" extends="struts-default"> |
|
<action name="createAccount" class="..."> |
<result type="chain">login</result> |
</action> |
|
<action name="login" class="..."> |
|
<result type="chain"> |
<param name="actionName">dashboard</param> |
<param name="namespace">/secure</param> |
</result> |
</action> |
</package> |
|
<package name="secure" extends="struts-default" namespace="/secure"> |
<action name="dashboard" class="..."> |
<result>dashboard.jsp</result> |
</action> |
</package>
Dispatcher Result 用来转向页面,通常处理JSP
<result name="success" type="dispatcher"> | <param name="location">foo.jsp</param> | </result> |
FreeMarker Result 处理FreeMarker模板
<result name="success" type="freemarker">foo.ftl</result> |
HttpHeader Result
用来控制特殊的Http行为
<result name="success" type="httpheader"> | <param name="status">204</param> | <param name="headers.a">a custom header value</param> | <param name="headers.b">another custom header value</param> | </result> | | <result name="proxyRequired" type="httpheader"> | <param name="error">305</param> | <param name="errorMessage">this action must be accessed through a prozy</param> | </result> |
Redirect Result
重定向到一个URL
<result name="success" type="redirect"> | <param name="location">foo.jsp</param> | <param name="parse">false</param> | </result> |
<result name="success" type="redirect"> <param name="location">foo.jsp</param> <param name="parse">false</param> </result> <script class="javascript"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shCore.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script> <script class="javascript" src="http://cwiki.apache.org/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
<package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters"> | <-- Pass parameters (reportType, width and height) --> | <!-- | The redirect-action url generated will be : | /genReport/generateReport.jsp?reportType=pie&width=100&height=100 | --> | <action name="gatherReportInfo" class="..."> | <result name="showReportResult" type="redirect"> | <param name="location">generateReport.jsp</param> | <param name="namespace">/genReport</param> | <param name="reportType">pie</param> | <param name="width">100</param> | <param name="height">100</param> | </result> | </action> | </package> |
Redirect Action Result
重定向到一个Action
<package name="public" extends="struts-default"> | <action name="login" class="..."> | | <result type="redirectAction"> | <param name="actionName">dashboard</param> | <param name="namespace">/secure</param> | </result> | </action> | </package> | | <package name="secure" extends="struts-default" namespace="/secure"> | <-- Redirect to an action in the same namespace --> | <action name="dashboard" class="..."> | <result>dashboard.jsp</result> | <result name="error" type="redirectAction">error</result> | </action> | | <action name="error" class="..."> | <result>error.jsp</result> | </action> | </package> | | <package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters"> | <-- Pass parameters (reportType, width and height) --> | <!-- | The redirectAction url generated will be : | /genReport/generateReport.action?reportType=pie&width=100&height=100 | --> | <action name="gatherReportInfo" class="..."> | <result name="showReportResult" type="redirectAction"> | <param name="actionName">generateReport</param> | <param name="namespace">/genReport</param> | <param name="reportType">pie</param> | <param name="width">100</param> | <param name="height">100</param> | <param name="empty"></param> | <param name="supressEmptyParameters">true</param> | </result> | </action> | </package> Stream Result 向浏览器发送InputSream对象,通常用来处理文件下载 |
<result name="success" type="stream"> | <param name="contentType">image/jpeg</param> | <param name="inputName">imageStream</param> | <param name="contentDisposition">attachment;filename="document.pdf"</param> | <param name="bufferSize">1024</param> | </result> |
Velocity Result
处理Velocity模板
<result name="success" type="velocity"> | <param name="location">foo.vm</param> | </result> |
XLS Result
处理XML/XLST模板
<result name="success" type="xslt"> | <param name="location">foo.xslt</param> | <param name="matchingPattern">^/result/[^/*]$</param> | <param name="excludingPattern">.*(hugeCollection).*</param> | </result> |
PlainText Result
显示原始文件内容,例如文件源代码
<action name="displayJspRawContent" > | <result type="plaintext">/myJspFile.jsp</result> | </action> | | | <action name="displayJspRawContent" > | <result type="plaintext"> | <param name="location">/myJspFile.jsp</param> | <param name="charSet">UTF-8</param> | </result> | </action> |
S2PLUGINS:Tiles Result
结合Tile使用
另外第三方的Result类型还包括JasperReports Plugin,专门用来处理JasperReport类型的报表输出。
<%@ taglib uri="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:getAsString name="title"/></title></head> | <body> | <tiles:insertAttribute name="header"/> | | <p id="body"> | <tiles:insertAttribute name="body"/> | </p> | | <p>Notice that this is a layout made in JSP</p> | </body> | </html> |
|