我用的是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