这几天做项目,做到级联菜单需要用json动态加载的时候死活也不好使 一直报错。
问题:因为我的数据是级联数据 ,所以我取出的时候使用的是hibernate的criteria.add("a","a",Criteria.LEFT_JOIN)方法,取出了对应的数据。在数据从dao层传入action 层的时候没有问题,但是传入jsp页面的时候,问题来了:
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.eduask.beans.TitleBank.TErrorbanks, no session or session was closed
一开始问题多多,action方法使用了多个get方法,取数据用的是hql而不是criteria等。
最后看了这个帖子struts2 + json问题,发现我在action向jsp页面传入的总是list集合,错误就应该是我用json传输Listj集合出现的问题.
本人解决方法:
1.使用了@JSON(serialize=false) ,在不需要json的get方法上
2.将要传入jsp 的JSON化的list集合变为了map集合,问题完美解决。