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表达式解析.
<result name="success" type="redirect">/displayCart.action?userId=${userId}</result>
其中有个关于chain的应用实例:购物车

本文介绍Struts2框架中的ChainResult与RedirectResult两种结果类型的应用场景及配置方法。ChainResult用于调用另一个Action并继续执行当前Action的拦截器栈,而RedirectResult则用于重定向浏览器URL到指定Action,适用于需要改变URL模式的情况。
275

被折叠的 条评论
为什么被折叠?



