转载至:http://www.blogjava.net/beijing2008/articles/317973.html
org.springframework.web.struts.ContextLoaderPlugIn 和 org.springframework.web.con
是视图层加载sping的两种方式。
那么这两种方式谁的优先级高,从容器加载程度上看,是org.springframework.web.context.ContextLoaderListener
那么两种方式都被配置在项目中,会使用哪个一个呢?
答案是org.springframework.web.struts.ContextLoaderPlugIn
当然如果你不需要在视图层采用lazy而配置org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
那么你可以两个都配置。
但如果你需要使用,那就会。
我们知道,容器初始化Spring配置文件时,使用getServletContext(
)
.setAttribute方法key,value全局保存。
那么当你使用OpenSessionInViewFilter时,他取得的是哪个呢?
其实OpenSessionInViewFilter是sping的Filter,它
采用WebApplicationContextUtils的方式获得WebApplicationContext
,但它并不能加载由struts-config.xml文件ContextLoaderPlugIn提供初始化的上下文。
如果你需要在视图层加载一对对....等关联对象。那么就会有
could not initialize proxy - the owning Session was closed
错误。
到此处我们看到,sping在应用程序和OpenSessionInViewFilter之间,加载了不同的上下文。
我们知道OpenSessionInViewFilter下无法获得ContextLoaderPlugIn加载的上下文,那我们可以推算,
应用程序应该加载了ContextLoaderPlugIn上下文,而OpenSessionInViewFilter却加载了ContextLoaderListener的上下文。
才导致视图层session有关闭的问题。
尝试解决此问题,若你配置了两个,则删除ContextLoaderPlugIn的加载方式。
若你只配置了ContextLoaderPlugIn的加载方式,则改成ContextLoaderListener加载方式。
分享到:
相关推荐
org.springframework.web.struts.ContextLoaderPlugIn.class org.springframework.web.struts.DelegatingActionProxy.class org.springframework.web.struts.DelegatingActionUtils.class org.springframework.web....
和Spring中OpenSessionInView由于org.springframework.web.struts.ContextLoaderPlugIn中保存同一个对象的名不同导致openSessionInView失效 稍微修改后在struts-config.xml中使用MyContextLoaderPlugIn.jar包中...
className="org.springframework.web.struts.ContextLoaderPlugIn"> ``` - 配置请求处理器为 Spring 提供的 `DelegatingRequestProcessor`。 - 示例代码: ```xml ...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/> ``` 为了自定义配置文件的位置,可以使用"contextConfigLocation"属性: ```xml <plug-in className="org.springframework.web....
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/springhiberante.xml"/> ``` **2. 在struts-config.xml中指定路径...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" /> </struts-config> ``` - **Spring配置文件**:在`action-servlet.xml`中配置需要的Bean。 ```xml <beans xmlns="http://www....
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> ``` 这种方式使得 Spring 容器能够...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="classpath:applicationContext.xml"/> ``` 这里的`contextConfigLocation`...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> ``` 然后,创建一个Action类,如`...
具体实现方法是让自定义的Action继承自`org.springframework.web.struts.ActionSupport`类,这样就可以在Action中使用Spring的依赖注入和其他特性了。 **示例代码**: ```java public class LoginAction extends ...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" /> ``` 这样,Struts就会在启动时加载`beans.xml`...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> ``` - **ContextLoaderPlugIn**:该...
- `className="org.springframework.web.struts.ContextLoaderPlugIn"`指定了插件类。 - `<set-property property="contextConfigLocation" value="classpath:applicationContext.xml" />`指定了Spring核心配置...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/> ``` 2. **编写继承...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugin"> <set-property property="contextConfigLocation" value="/WEB-INF/config.xml"/> ... </struts-config> ``` `config.xml`是...
className="org.springframework.web.struts.ContextLoaderPlugIn"> value="/WEB-INF/applicationContext.xml"/> ``` ##### 3. 整合Hibernate - **配置Hibernate库** - 选择Hibernate所需的JAR包并复制到`/...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml,/WEB-INF/applicationContext.xml"/> ``` ...
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property value="/WEB-INF/applicationContext.xml,/WEB-INF/appContext.xml" property="contextConfigLocation"/> ``` ####...
如果不希望在`struts-config.xml`中配置`ContextLoaderPlugIn`插件,可以在`web.xml`中配置一个监听器`org.springframework.web.context.ContextLoaderListener`来装载Spring上下文。 2. **特点**: - 不使用...