struts2.0拦截器的返回值

简介:
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的逻辑拆开。在这两个逻辑中间就可以插入拦截器的处理逻辑了。



本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/797910,如需转载请自行联系原作者

相关文章
|
7月前
|
XML JSON Java
SpringMVC常用注解、参数传递、返回值
SpringMVC常用注解、参数传递、返回值
20 0
|
8月前
|
XML JSON 前端开发
【SpringMVC】常用注解、参数传递、返回值
@RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法 此时请求映射所映射的请求的请求路径为:http://localhost:8080/springmvc/requestTest用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 此时请求映射所映射的请求的请求路径为:http://localhost:8080/springmvc/hello/requestTest
【SpringMVC】常用注解、参数传递、返回值
|
8月前
Struts2的拦截器
Struts2的拦截器
25 0
|
存储 前端开发 Java
SpringMVC 视图解析器 方法返回值 异常处理器
SpringMVC 视图解析器 方法返回值 异常处理器
107 0
SpringMVC:拦截器和过滤器的区别
SpringMVC:拦截器和过滤器的区别
105 0
SpringMVC:拦截器和过滤器的区别
|
Java
Struts拦截器解析
Struts拦截器解析
84 0
|
Java
Struts2【拦截器】(一)
Struts2【拦截器】
141 0
Struts2【拦截器】(一)
|
Java 关系型数据库 MySQL
Struts2【拦截器】(二)
Struts2【拦截器】
130 0
Struts2【拦截器】(二)
|
小程序 Java
Struts2【拦截器】(三)
Struts2【拦截器】
161 0
Struts2【拦截器】(三)
|
JSON 数据格式 前端开发
07 Struts2 方法调用及返回值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/81736347 1. 方法调用 1. 默认方法 2. 自定义方法 3. 动态方法 一个Action类可以有多个业务逻辑方法,但是只需要配置一个Action标签,不需要method属性,在调用时指出Action名和业务逻辑方法。
1290 0