zoukankan      html  css  js  c++  java
  • struts2 中chain、redirect、redirectaction的区别

    一。Chain Result:
    这个result调用另外的一个action,连接自己的拦截器栈和result。

    • actionName (默认) - 被调用的action的名字
    • namespace - 被调用的action的名称空间. 如果名称空间为空,这默认为当前名称空间
    • method - 用于指定目标action的另一个方法被调用. 如果空,默认为excute方法

    Redirect Action Result:
    这个Result使用ActionMapperFactory提供的ActionMapper来重定位浏览器的URL来调用指定的action和(可选的)namespace. 这个Result比ServletRedirectResult要好.因为你不需要把URL编码成xwork.xml中配置的ActionMapper提供的模式. 这就是说你可以在任意点上改变URL模式而不会影响你的应用程序. 因此强烈推荐使用这个Result而不是标准的redirect result来解决重定位到某个action的情况.

    • ActionName (默认) - 重定位到的action名
    • namespace - action的名称空间. 如果为null,则为当前名称空间

    Redirect Result

    调用{@link HttpServletResponse#sendRedirect(String) sendRedirect}方法来转到指定的位置. HTTP响应被告知使浏览器直接跳转到指定的位置(产生客户端的一个新请求). 这样做的结果会使刚刚执行的action(包括action实例,action中的错误消息等)丢失, 不再可用. 这是因为action是建立在单线程模型基础上的. 传递数据的唯一方式就是通过Session或者可以为Ognl表达式的web参数(url?name=value)

    • location (默认) - action执行后跳转的地址.
    • parse - 默认为true. 如果设置为false, location参数不会被当作Ognl表达式解析.

     

    二。当使用type=“redirectAction” 或type=“redirect”提交到一个action并且需要传递一个参数时。这里是有区别的:
    a.使用type=“redirectAction”时,结果就只能写Action的配置名,不能带有后缀:“.action”
    Java代码

     

    <action name="Login" class="steven.actions.LoginAction">
    <result name="success" type="redirectAction">User?u_id=${loginBean.u_id}</result>
    </action>


    b.使用type=“redirect”时,结果应是action配置名+后缀名
    Java代码
     

    <action name="Login" class="steven.actions.LoginAction">
    <result name="success" type="redirect">User.action?u_id=${loginBean.u_id}</result>
    </action> 


    ps:1 redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失。
         2 redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失。
         3 chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失

    转自:http://blog.csdn.net/zhouxi19880701/article/details/5987850

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/PatrickLee/p/2621425.html
Copyright © 2011-2022 走看看