struts2学习笔记----result with params

带参数的结果集实际上就是当result的type类型去不同的值的时候,比如:redirect或dispatcher,因为他们访问页面的机制是不同

的,redirect是客户端的跳转,也就是访问某一个页面时服务器会告诉我的客户端去访问另一个地址,然后客户端会再去访问那个地

址,所以在地址栏中也可以看到实际访问的地址位置,但是dispatcher是服务器端的跳转,跳转发生在服务器端客户端并不能看到跳

转的页面地址看到的还是自己访问的页面地址,因此在两种情况下参数的传递是不相同的。




struts.xml

<package name="user" namespace="/user" extends="struts-default">
        <action name="user" class="com.zeko.action.user.action.ResultAction">
            <result type="redirect">
				/redirectPage.jsp?t=${type}
            </result>
            <result name="error">
				/dispatcherPage.jsp?t=${type}
            </result>
        </action>
     </package>

在dispatcher模式下,因为是服务器端的跳转,所以action并没有发生变化,访问的始终是同一个action,所以在action中存储的值在

转之后依然可以访问

<body>
    mainPage. <br>
    value stack: <s:property value="type"/>
    Stack Context: <s:property value="#parameters.t"/>
    <s:debug></s:debug>
  </body>

上面的代码,实际运行过程中可以虽然经过跳转但是通过<s:property>依然可以取到type的值,但是不同通过<s:property value="t">取

到传递给dispatcherPage.jsp的值,因为t不是action中的值,所以并没有存储到value stack中,但是存储到了stack context中,所以可

以通过<s:property value="#parameters.t">取到t的值。

通过dispatcher访问后,value stack情况:



在redirect模式下,因为是客户端的跳转,所以action并发生了变化,通过resirect跳转之后直接访问的redirectPage.jsp?t=${type}并传

递了参数,因为没有通过action传递,所以在页面跳转之后是没有value stack中的值的,所以不能通过<s:property value="type">取得

type的值,但是可以通过#parameters取得t的值。

通过redirect访问后的value stack情况:



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值