Struts2 结果类型

        <action name="r1">
        	<result type="dispatcher">/r1.jsp</result> <!-- 服务器端跳转 -->
        </action>
        
        <action name="r2">
        	<result type="redirect">/p/r2.jsp</result>    <!-- 客户端跳转 -->
        </action>
        
        <action name="r3">
        	<result type="chain">r1</result>   <!-- 服务器端跳转 -->
        </action>
        
        <action name="r4">
        	<result type="redirectAction">r2</result>    <!-- 客户端跳转 -->
        </action>

对于r1:这是默认跳转方式,实现服务器端跳转,只能跳转到jsp、html等页面,不能跳转到另一个action。

对于r2:实现客户端跳转,只能跳转到jsp、html等页面。

对于r3:服务器端跳转到另一个action,一般不要加“/”,如果action在另一个package中(p),用param(如下,查文档) 。           

        <result type="chain">
            <param name="actionName">dashboard</param>
            <param name="namespace">/secure</param>
        </result>

对于r4:客户端跳转到另一个action。

对于 r3 和 r4 ,都要注意跳转后的跳转方式,注意浏览器的地址变化。


全局结果集,在一个package中定义:
<global-results>
	<result name="mainpage">/main.jsp</result>
</global-results>


动态结果集:

       <action name="user" class="com.demo.UserAction" >
        	<result name="error">/User_ERROR.jsp</result-->
        	<result>${r}</result>
        </action>
${r} 表示在struts.xml中取得在value stack中的 r 的值。


带参数的结果集:

        <action name="user" class="com.demo.param.UserAction" >     	
        	<result type="redirect">/user_success.jsp?t=${type}</result>
        </action>
此时页面redirect到带参数的user_success.jsp。

如果此是是chain到另一个action,如果也需要把当前action的type传过去的话,则不需要通过上面的方式,因为这时候两个action共享同一个value stack。

(一个request只有一个value stack)

图解:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值