Result Types

Struts2提供了对不同种类返回结果的支持,常见的有JSP,FreeMarker,Velocity等。
Struts2支持的不同类型的返回结果为:
名字
说明
Chain Result
用来处理Action链
Dispatcher Result
用来转向页面,通常处理JSP
FreeMarker Result
处理FreeMarker模板
HttpHeader Result
用来控制特殊的Http行为
Redirect Result
重定向到一个URL
Redirect Action Result
重定向到一个Action
Stream Result
向浏览器发送InputSream对象,通常用来处理文件下载
Velocity Result
处理Velocity模板
XLS Result
处理XML/XLST模板
PlainText Result
显示原始文件内容,例如文件源代码
S2PLUGINS:Tiles Result
结合Tile使用
另外第三方的Result类型还包括JasperReports Plugin,专门用来处理JasperReport类型的报表输出。
在struts-default.xml定义的所有Result类型:
        <result-types>
            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
        </result-types>
如果不指定 Result类型的时使用dispatcher类型

在package内部定义全局的Result:
	<package name="base" extends="struts-default">
		<global-results>
			<global-results>
				<result name="success">/index.jsp</result>
				<result name="error">/error.jsp</result>
				<result name="login" type="redirect-action">Logon!input</result>
			</global-results>
		</global-results>
	</package>
当你只需要在本包内使用时可以只在本包里定义,但当你要在所有包都能使用,就可以使用上面配置定义,然后要使用的包继承此包。

1、使用redirectAction重定向到同包内的action:
		<action name="redirectActiontest">
			<result name="success" type="redirect">/register_success.jsp</result>
		</action>
		<action name="redirectAction">
			<result type="redirectAction">redirectActiontest</result>
		</action>

当要使用 redirectAction重定向到另一个包的action时,就需要为org.apache.struts2.dispatcher.ServletActionRedirectResult属性注值
<package name="default" namespace="/test" extends="struts-default">
	<action name="redirectAction">
		<result type="redirectAction">
			<!-- 重定向到另一個包的action -->
			<param name="actionName">xxx</param>
			<param name="namespace">/other/dfsdfsdf</param>
		</result>
	</action>
</package>

<package name="other" namespace="/other" extends="struts-default">
	<action name="xxx">
		<result name="success">/register_success.jsp</result>
	</action>
</package>
组合成的路径就为:/other/dfsdfsdf/xxx,也是可以访问的

2、使用plainText显示视图源代码:
		<action name="plainText">
			<result type="plainText">/showdate.jsp</result>
		</action>
当需要设置编码时,需使用用到下面配置:
		<action name="plainText">
			<result type="plainText">
				<param name="location">/showdate.jsp</param>
				<param name="charSet">UTF-8</param>
			</result>
		</action>



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值