daoimpl  代码如下
public List loadById(Class clazz, Serializable id) {
// TODO Auto-generated method stub
return (List)  getHibernateTemplate().get(clazz, id);
}serviceimpl 代码如下
public List loadById(Integer id) {
// TODO Auto-generated method stub
return  categoryDao.loadById(Category.class, id);
}
action代码如下
   public String upe() {
List list = categoryService.loadById(category.getCateId());
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("list", list);
return "upe"; }pojo代码如下
private Integer CateId   ;
private String CateName  ;
private String CateCode   ;
private String CateTarget ;
        set get方法省略
jsp代码如下
 <c:forEach var="category" items="${requestScope.list}">
    
     <table><tr><td>${category.CateName}</td></tr></table></c:forEach>执行后出现如下错误
   java.lang.ClassCastException: com.jcms.pojo.Category cannot be cast to java.util.List 
    com.jcms.dao.impl.CategoryDaoImpl.loadById(CategoryDaoImpl.java:42)
    com.jcms.service.impl.CategoryServiceImpl.loadById(CategoryServiceImpl.java:45)  哪位高手帮我看下 这个问题应该如何解决 非常感谢各位朋友
谢谢

解决方案 »

  1.   


    我第一个感觉是这个地方出了错,错误应该是方法get(clazz, id)获得的是Category对象而不是list;这个问题比较明显,稍微看下api或者debug下就能解决了。楼主稍微耐心点就行了。即使是C标签出问题也可以通过debug原代码来解决的。
      

  2.   


    List list = categoryService.loadById(category.getCateId());
    返回是Category吧?
      

  3.   

    public List loadById(Class clazz, Serializable id) {
    // TODO Auto-generated method stub
    return (List) getHibernateTemplate().get(clazz, id);
    }
    都是通过ID查找出来的,难道还会抖多条记录?很明显 getHibernateTemplate().get(clazz, id);得到的是一个实例对象,不是list集合。