一,<interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>
就是把这个action的result 转给下个action,那么这个action当中的 valueStack 需要拷贝到下个Action中去
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref name="basicStack"/>
<result name="success" type="chain">otherAction</result>
</action>
<action name="otherAction" class="com.examples.OtherAction">
<interceptor-ref name="chain"/>
<interceptor-ref name="basicStack"/>
<result name="success">good_result.ftl</result>
</action>
其中可以配置的有struts2的3个常量:
- struts.xwork.chaining.copyErrors - set to true to copy Action Errors(默认false)
- struts.xwork.chaining.copyFieldErrors - set to true to copy Field Errors (默认false)
- struts.xwork.chaining.copyMessages - set to true to copy Action Messages (默认false)
另外还有2个参数
protected Collection<String> excludes;
protected Collection<String> includes;
这2个参数,如果excludes 被设置了,那么里面提到的参数将不被复制
如果includes 被设置了,那么里面提到的参数将被复制
如果includes 没有被设置,那么除了excludes 以外的都将被复制,详情可参见OgnlUtil.java当中的代码片段
if (exclusions != null && exclusions.contains(fromPd.getName())) {
copy = false;
} else if (inclusions != null && !inclusions.contains(fromPd.getName())) {
copy = false;
}
========================================================
二,<interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>
主要用于将cookie中指定的name 和指定的 value ,放到valueStack中去
如果Action实现了CookieAware接口也可以参考如下代码
/**
* Hook that set the <code>cookiesMap</code> into action that implements
* {@link CookiesAware}.
*
* @param action
* @param cookiesMap
*/
protected void injectIntoCookiesAwareAction(Object action, Map<String, String> cookiesMap) {
if (action instanceof CookiesAware) {
if (LOG.isDebugEnabled())
LOG.debug("action ["+action+"] implements CookiesAware, injecting cookies map ["+cookiesMap+"]");
((CookiesAware)action).setCookiesMap(cookiesMap);
}
}
分享到:
相关推荐
NULL 博文链接:https://zw7534313.iteye.com/blog/430551
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,...
struts2的所有知识点 流程 原理 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个...
最全的InterCepter的基础,面向对象AOP的透彻分析
Spring boot+Mybatis+Mysql+Swagger整合,包括spring boot下创建过滤器filter与intercepter拦截器,使用Intellij idea创建工程,测试OK
(2)拦截器组件可以继承AbstractIntercepter类(实现了Intercepter接口)。 (3)拦截器组件可以继承MethodFilterIntercepter类(继承自AbstractIntercepter),增加了方法过滤功能(上面两种方式是拦截所有方法,这个...
Postman用的拦截器,可以自动获取cookie并填充到Postman。直接解压,然后用Chrome内核的浏览器加载已解压的插件。 使用方法,详见:https://blog.csdn.net/cjs1534717040/article/details/124289171
2你可以任意包装你的出参,比如加上消耗的时间,添加一个唯一的uuid等等,同时这些东西都是由拦截器提供的功能。这些功能也可以做成配置化,比如你那些接口不需要这样的包装,在yml中配置一下,就可以了。 demo已经...
chromecj.com-Postman-Interceptor_v0.2.23.crx 离线版本测试
Heltec拦截器 有关详细信息,请参见操纵杆拦截器 Connect pins GND - GND 3.3v - 3.3v 14 - 14 12 - 12 重新映射了14和12以进行串行通信。 是的-将14连接到14-两个程序使用不同的引脚进行发送和接收,因此无需...
Google插件:Sends requests fired through the Postman chrome app.
Flume配置文件kafkaSource 包含Intercepter,包含正则表达式。
免费Postman和Postman interceptor压缩包,Postman为文件夹,直接选择扩展程序中的 加载已解压的扩展程序 ,选择解压后的postman文件夹即可,postman-interceptor为crx文件,直接拖入到chrome://extensions/中即可
主要介绍了Java servlet、filter、listener、interceptor之间的区别和联系的相关资料,需要的朋友可以参考下
主要介绍了浅谈SpringMVC中Interceptor和Filter区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
章鱼社区 技术栈 SpringBoot。Thymeleaf模板引擎。 数据访问层:Mybatis。 数据库:MySql。 服务器:内置Tomcat。...前端相关:jQuery,Bootstrap,Ajax,Layer等。... OAuth2授权登录(Github,百度,...│ ├─intercepter
:warning: 该项目现在是EE4J计划的一部分。 该仓库已被归档,因为所有活动现在都在。 有关整体EE4J过渡状态,请参见。javax.interceptor javax.interceptor API的存储库
SpringMVC+ExtJS完美集成(数据传输方式为JSON和model),同时还支持controller页面配置、页面消息可配置(类似于国际化)、intercepter示例。
Java开发的建站系统神器源码,目前已经有 10w+ 网站使用 JPress 进行驱动,其中包括多个政府机构,...插件被停止:该插件的所有Controller、Handler、Intercepter 自动被移除 插件被卸载:该插件的所有资源全部被删除
##CXFClient_Intercepter 初步学习自定义拦截器。通过验证用户名和密码的栗子,实现简单的自定义拦截器功能 #part Three cxfTypeTestClient 这是用来测试JDK webservice 和CXF在参数类型上的不一样,CXF支持比较多的...