spring OpenSessionInViewFilter无效

在做一个项目,想通过spring 的OpenSessionInViewFilter配置解决session关闭的问题,可是配置了之后发现还是不成功,想问问大伙我的问题到底出在了哪里

项目是struts2+spring2.5+hibenate3.0.

下面是web.xml中配置的相关代码:

 <filter>
  <filter-name>hibernateFilter</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>hibernateFilter</filter-name>
  <url-pattern>*.action</url-pattern>
 </filter-mapping>

 

下面是spring配置文件中关于事务的配置:

 

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory" />
  </property>
 </bean>
 <!-- 设置事务管理器 -->
 <bean id="transactionInterceptor"
  class="org.springframework.transaction.interceptor.TransactionInterceptor">
  <!-- 事务拦截器需要依赖一个事务管理器 -->
  <property name="transactionManager" ref="transactionManager" />
  <property name="transactionAttributes">
   <!--  下面定义事务传播属性-->
   <props>
    <prop key="delete*">PROPAGATION_REQUIRED</prop>
    <prop key="add*">PROPAGATION_REQUIRED</prop>
    <prop key="update*">PROPAGATION_REQUIRED</prop>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
    <prop key="find*">PROPAGATION_REQUIRED,readOnly
    </prop>
   </props>
  </property>
 </bean>
 <bean
  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  <!-- 定义BeanNameAutoProxyCreator-->
  <property name="beanNames">
   <!--  下面是所有需要自动创建事务代理的bean-->
   <value>*Service</value>
  </property>
  <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
  <property name="interceptorNames">
   <list>
    <value>transactionInterceptor</value>
    <!-- 此处可增加其他新的Interceptor -->
   </list>
  </property>
 </bean>

 

我在页面是想得取user类中的rose中的角度名称rname,结果显示不出--于是试着在action中进行打印该属性System.out.println(user.rose.rname) -->就指no session异常了..System.out.println(user.rose.rid) -->却可能显示...

fuser = fuserService.getFuserByUser(user.getUuser());
     if (fuser != null) {
      if (Fmd5.pwdMd5(user.getUpwd()).equals(fuser.getUpwd())) {
       System.out.println(fuser.getFrose().getRname());
       ServletActionContext.getRequest().getSession()
         .setAttribute("sessionUser", fuser);
       return SUCCESS;
      } else {
       return INPUT;
      }
     }

 

请大伙帮忙看看,非常感谢

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
放到
org.apache.struts2.dispatcher.FilterDispatcher
前面

分太少,不解释!

不用解释了,我测试一下,我就是这样弄不行 :D