struts2.0拦截器的返回值
2012-03-06 11:12
260 查看
struts2.0里写拦截器的时候,如果被拦截的action无异常的执行完毕,并返回了一个返回值,而拦截器试图跳转到另一个返回值上去时,不能简单的用拦截器的return xxx来实现。这样不起作用。
原因是使用 invocation.invoke();的时候,不仅执行了action内部的逻辑,而且会根据action返回的结果去组装result。因此,在拦截器继续执行后续逻辑时,返回结果已经被确定了。这样一来,即使拦截器返回了其它的resultString,也改变不了result了。
正确的实现方法在寻找中。
CH找到了解决的方法:
ActionInvocationWrapper argWrapper = new ActionInvocationWrapper(arg0);
// 单独执行Action
result = argWrapper.executeAction();
// 单独执行Result
argWrapper.executeResult();
这样就把action的逻辑和result的逻辑拆开。在这两个逻辑中间就可以插入拦截器的处理逻辑了。
本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/797910
原因是使用 invocation.invoke();的时候,不仅执行了action内部的逻辑,而且会根据action返回的结果去组装result。因此,在拦截器继续执行后续逻辑时,返回结果已经被确定了。这样一来,即使拦截器返回了其它的resultString,也改变不了result了。
正确的实现方法在寻找中。
CH找到了解决的方法:
ActionInvocationWrapper argWrapper = new ActionInvocationWrapper(arg0);
// 单独执行Action
result = argWrapper.executeAction();
// 单独执行Result
argWrapper.executeResult();
这样就把action的逻辑和result的逻辑拆开。在这两个逻辑中间就可以插入拦截器的处理逻辑了。
本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/797910
相关文章推荐
- 通过struts拦截器和java反射机制过滤Action返回结果中的null值
- struts2.0拦截器的用法
- struts2.0 Interceptor Configuration(拦截器配置)
- Struts2.0——什么是拦截器
- 拦截器和过滤器有什么区别(JAVA/struts2.0)
- 【Struts2.0】Struts 2的基石——拦截器(Interceptor)
- 【ssh】struts文件上传拦截器(单,多文件上传,以及错误信息的返回)
- struts2.0 拦截器
- 拦截器和过滤器有什么区别(JAVA/struts2.0)
- 拦截器和过滤器有什么区别(JAVA/struts2.0)
- 拦截器和过滤器有什么区别(JAVA/struts2.0)
- Retrofit2.0添加日志拦截器打印URL一级返回数据
- struts2.0之拦截器
- 使用 struts2.0 返回数据列表时的collection 变量名不能与jsp文件同名?
- Struts 2.0 拦截器原理解读
- Struts 2的基石——拦截器(Interceptor)(Struts 2.0系列之七)
- struts2.0上传拦截器不起作用
- Struts 2.0 与拦截器相关的配置元素
- Struts2.0 封装请求数据和拦截器介绍
- struts2.0之拦截器