如何在Struts2的拦截器中调用Spring容器
第一种:
通常用ApplicationContext来调用Spring配置文件中的一些Bean,所以首先创建Spring上下文容器。
ApplicationContext ac = (ApplicationContext) invocation.getInvocationContext().getApplication().get(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
以上代码中invocation是Struts2拦截器方法intercept(ActionInvocation invocation)方法的参数
其中ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE在源码中是这样定义的:
String ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE = WebApplicationContext.class.getName() + ".ROOT";
所以通过此种方式可以得到ApplicationContext
第二种:
ServletContext sc=ServletActionContext.getServletContext();
ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(sc);
首先获取Servlet上下文(这是Struts2访问Servlet三种方式中的一种)
Spring给我们提供了WebApplicationContext的工具类很方便的访问WebApplicationContext,这种方式比上一种简单,
但是如果仔细查看WebApplicationContextUtils的getWebApplicationContext(ServletContext sc)的源码会发现还是会用到ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,所以归根结底它们的原理一样。
public static WebApplicationContext getWebApplicationContext(ServletContext sc) {
return getWebApplicationContext(sc, WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
}
如何在Struts2的拦截器中调用Spring容器的更多相关文章
- spring拦截器中使用spring的自动注入
需要在spring的拦截器中使用自定义的服务,这要就设计到将服务注入到拦截器中.网上看的情况有两种: 1. @Configuration public class OptPermissionHandl ...
- Struts2 在拦截器中向Action传参
struts.xml配置文件: <package name="system-default" extends="struts-default" abstr ...
- [技巧篇]08.Struts2拦截器中获取Servlet API方法
讲课中遇到的解决Session拦截器的后腿问题,还有如何在拦截器中获取Servlet API,这里留一个备注,方便学生查找
- 【tmos】如何在Interceptor拦截器中注入其他数据
光是这样是获取不到weixinConfig内容的 public class WebLoginInterceptor implements HandlerInterceptor { @Autowired ...
- Struts2 在登录拦截器中对ajax请求的处理
前言: 由于ajax请求不像http请求,可以直接进行页面跳转,你返回的所有东西,ajax都只会识别为一个字符串. 之前尝试的方法是在拦截器中返回一个标识给ajax,然后再在每一个ajax请求成功之后 ...
- (六)Struts2的拦截器
一.简介 拦截器体系是struts2重要的组成部分.正是大量的内建拦截器完成了该框架的大部分操作. 比如params拦截器将请求参数解析出来,设置Action的属性.servletConfig拦截器负 ...
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...
- struts2 配置拦截器
第一步:继承MethodFilterInterceptor写自己的自定义拦截器 import org.apache.struts2.ServletActionContext; import com.o ...
- struts2总结六: Struts2的拦截器
一.Struts2的系统结构图
随机推荐
- [ios]Xcode常用快捷键
参考:http://www.linuxidc.com/Linux/2012-08/67905.htm Xcode常用快捷键 隐藏xcode command+h退出xcode command+q关闭窗口 ...
- 算法笔记--STL中的各种遍历及查找(待增)
算法笔记 map: map<string,int> m; map<string,int>::iterator it;//auto it it = m.begin(); whil ...
- java.lang.NoSuchMethodError问题处理
出现这个问题一般是jar包冲突了,我找了很久没找到是哪个jar冲突了.最后用下面的这段代码,找到是哪个jar冲突了 /** * find jar file */ String LOCATION = & ...
- JS循环汇总
JS循环汇总 一.总结 一句话总结:js中的循环主要有while.for.for...in.for...of,循环是,要区别不同的循环对象,比如对象,数组,集合等 while for for...in ...
- 《图解Http》 HTTPS 安全协议
相关博客:https://www.cnblogs.com/chentianwei/p/9374341.html (讲的更明白,有图) HTTPS 7.1http的缺点 使用明文,内容会被窃听. 不验 ...
- Linux Used内存到底哪里去了?
原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: Linux Used内存到底哪里去了? 前几天 纯上 同学问了一个问题: 我ps aux看到的RSS内存只有不到30M,但是free看 ...
- A Creative Cutout CodeForces - 933D (计数)
大意:给定$n$个圆, 圆心均在原点, 第$k$个圆半径为$\sqrt{k}$ 定义一个点的美丽值为所有包含这个点的圆的编号和 定义函数$f(n)$为只有$n$个圆时所有点的贡献,求$\sum_{k= ...
- Android studio jni
首先我们要明确几个概念,jni,ndk,共享库(.so). jni是java native interface的缩写,java 本地接口.它提供了若干的API实现了Java和其他语言的通信(主要是C/ ...
- 对比springmvc与struts2
转载:http://blog.csdn.net/chenleixing/article/details/44570681 1.Struts2是类级别的拦截, 一个类对应一个request上下文,Spr ...
- PHP:第一章——PHP中静态变量和常量
<?php header("Content-Type:text/html;charset=utf-8"); /******************************** ...