想解决问题:spring中session管理opersession,避免页面中数据未输出完session就被关闭了(session延迟加载)
转载:
Spring+Hibernate中OpenSessionInView模式运用配置OpenSessionInView模式也很简单,Spring提供了两种方式:
1、过滤流Filter
2、Interceptor
推荐用第二种方式
但尝试使用时发现,第一种方法看似简单,加入到代码中总是报错。
按上面所说方法,加在web.xml中后,在最上面加着。报错:java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
在网上搜索,提示:需要在web.xml中加入
加上之后直接启动报错了。。
main FATAL - Proxool Provider unable to load JAXP configurator file: proxool.xml
org.logicalcobwebs.proxool.ProxoolException: Parsing failed.
Caused by: org.logicalcobwebs.proxool.ProxoolException: Attempt to register duplicate pool called 'dbpool'
再经查询说需要在web.xml中加入如下:
<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔此参数用于后面的Spring-Context loader -->
第二种方法,感觉说的不是很明确。
大家有没有使用过的,能告知具体如何处理,谢谢!(在网上找了好久,都是这个,可是感觉不知道如何用。)
补充:昨天新试第一种方法,只需在web.xml中加入即可,并注意注释掉struts-conf.xml中的如下部分。
web.xml中加入:
转载:
Spring+Hibernate中OpenSessionInView模式运用配置OpenSessionInView模式也很简单,Spring提供了两种方式:
1、过滤流Filter
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
2、Interceptor
<!-- SimpleUrlHandlerMapping -->
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors" ref="openSessionInViewInterceptor"/>
<property name="mappings">
<props>
。。。
</props>
</property>
</bean>
<!-- =========== openSessionInViewInterceptor ==============-->
<bean id="openSessionInViewInterceptor"
class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
推荐用第二种方式
但尝试使用时发现,第一种方法看似简单,加入到代码中总是报错。
按上面所说方法,加在web.xml中后,在最上面加着。报错:java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
在网上搜索,提示:需要在web.xml中加入
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
加上之后直接启动报错了。。
main FATAL - Proxool Provider unable to load JAXP configurator file: proxool.xml
org.logicalcobwebs.proxool.ProxoolException: Parsing failed.
Caused by: org.logicalcobwebs.proxool.ProxoolException: Attempt to register duplicate pool called 'dbpool'
再经查询说需要在web.xml中加入如下:
<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔此参数用于后面的Spring-Context loader -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xml</param-value>
</context-param>
第二种方法,感觉说的不是很明确。
大家有没有使用过的,能告知具体如何处理,谢谢!(在网上找了好久,都是这个,可是感觉不知道如何用。)
补充:昨天新试第一种方法,只需在web.xml中加入即可,并注意注释掉struts-conf.xml中的如下部分。
web.xml中加入:
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
struts-conf。xml中需注释内容:
<!--
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>
-->