无法在 JSP 中显示 arrayList

Posted

技术标签:

【中文标题】无法在 JSP 中显示 arrayList【英文标题】:cannot display an arrayList in JSP 【发布时间】:2014-02-17 18:24:05 【问题描述】:

我的 bean 被称为 Zone,我使用 Hibernate 从 sql Server 获取了所有 Zones。 在 DAO.Class 中:

List zones = session.createQuery("FROM Zone").list();

我想将此列表从 servlet 发送到 jsp。 在servlet.class

List result = dao.getListZone();
request.setAttribute("userList",result);
 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/home.jsp");
dispatcher.forward(request,response);

在我的jsp中:

List viewList = new ArrayList();

if(request.getAttribute("userList")!=null && request.getAttribute("userList")!="")
List<Zone> userList =  (List)request.getSession().getAttribute("userList");
 itr = userList.iterator();

while(itr.hasNext())


    if(count%2==0)
    
     bgcolor = "#C8E2D1";
    
    else
    

        bgcolor = "#EAF8EF";
    

    viewList = (ArrayList)itr.next();
    int id = Integer.parseInt(viewList.get(0).toString());
    viewItr = viewList.iterator();
    %>

    <tr style="background-color:<%=bgcolor%>;">
    <%  
    while(viewItr.hasNext())
    

        %>
        <td><%=viewItr.next()%></td>

它说它不能将我的 bean Zone 转换为 arrayList。它说那行

 itr = userList.iterator();

犯错误。

感谢您的帮助。


我得到这个错误:java.lang.ClassCastException: bean.Zone cannot be cast to java.util.ArrayList 在下面的代码的第一行

viewList = (ArrayList<Zone>)itr.next();
        int id = Integer.parseInt(viewList.get(0).toString());
        viewItr = viewList.iterator();

【问题讨论】:

【参考方案1】:

1您正在检查请求中是否存在该属性,然后您正在从会话中读取它

2你需要像这样投射它

List<Zone> userList =  (List<Zone>)request.getAttribute("userList");

3你需要使用JSTL来明确区分视图和逻辑


另见

why business logic should be moved out of JSP?

【讨论】:

以上是关于无法在 JSP 中显示 arrayList的主要内容,如果未能解决你的问题,请参考以下文章

我在jsp页面上添加百度地图时,添加图片无法显示

在jsp中使用ckeditor时无法显示从word中粘贴过来的图片,

关于项目部署完成后,jsp页面无法正常显示的问题

关于springmvc 只能在index.jsp页面显示图片的处理办法jsp页面无法显示图片

JSP问题,无法显示空格和换行。

无法显示jsp页面