问一个hibernate的session问题
我用的是hibernate+spring,一个方法使用Criteria进行查询    
 写了一个基础服务的实现,这个方法的代码如下      
 /*通过一个po对象得到映射数据库的信息*/    
             public   Criteria   findAllByCriteria(final   Class   c)   {    
                         return   (Criteria)   getHibernateTemplate().execute(new   HibernateCallback()   {      
                                     public   Object   doInHibernate(Session   session)    
                                                             throws   
HibernateException   {    
                                                 Criteria   criteria   =   session.createCriteria(c);    
                                                 return   criteria;    
                                     }    
                         },   true);    
             }           
 单元测试通过,但是通过监听在页面上实现这个方法就不行(其他方法通过监听就没有问题),报错是说Session   is   closed    
 报错信息      
 11:21:55,512   [http-8080-Processor25]   ERROR   StandardWrapperValve   :   Servlet.service()   for   servlet   jsp   threw   exception     
org.hibernate.SessionException:   Session   is   closed!    
             at   org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)    
             at   org.hibernate.impl.SessionImpl.list(SessionImpl.java:1541)    
             at   org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)             
 排查了半天可能就是觉得这个findAllByCriteria方法里面Session的问题了...    
 以前多表联查的时候也出现过这个Session   is   closed的问题,不过没有解决放弃掉了..如果不能直接从model层直接调用查询到页面.怎么才能实现呢??   
 Thanks   any   reply 
------解决方案--------------------应该是到执行jsp页面的时候hibernate的session已经关闭了 
 试试hibernate的一个jsp的filter,可以在jsp中也用hibernate session.     
      <filter>  
          <filter-name> hibernateFilter </filter-name>  
          <filter-class> org.springframework.orm.hibernate.support.OpenSessionInViewFilter </filter-class>  
      </filter>