java--struts2--redirect、 redirectAction、chain区别

Result的首要职责封装Action层到View层的跳转逻辑。而Struct2的Action是一个与Web容器无关的POJO。

在Action执行完毕后,框架需要把代码的执行权重新提交给web容器,并转向到响应的页面或其它类型的View层。其中的跳转逻辑就由struct的result来完成。

那么Result在处理跳转的过程中,有三种处理类型type,即redirect、redirectAction、chain。

1、当type="redirect"时,处理完后重定向到一个视图资源(如jsp页面),请求参数全部丢失,action处理结果也全部丢失,结果可以是action配置名+后缀名。


2、当type="redirectActioin"时,处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失,结果只能写配置名,不能带后缀“.action”:

	<package name="loginAction" namespace="/" extends="abstract_struts">
	
		<action name="login" class="loginAction">
			<result name="success" type="redirectAction">main</result>
			<result name="fail">/fail.jsp</result>
		</action>

		<!-- 该action只负责跳转,用struts提供的ActionSupport -->
		<action name="main" class="userMainAction">
			<result name="success">/main.jsp</result>
			<interceptor-ref name="myInterceptor" />
		</action>
	</package>



3、当type="chain"时,处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失。

	<package name="userActions" namespace="/userAdmin" extends="abstract_struts">
	    <action name="main" class="userAction">
	       <result>/userAdmin/userMain.jsp</result>
	    </action>
	    
	    <action name="*_*" class="userAction" method="{1}">
			<result name="successSelect" type="chain">main</result>
			<result name="failSelect">/fail.jsp</result>
			<interceptor-ref name="myInterceptor" />
		</action>
	</package>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值