无法在JSP中显示arrayList

时间:2014-01-27 02:14:27

标签: java jsp servlets arraylist

我的bean被称为Zone,我从sql Server获得了所有带有Hibernate的区域。  在DAO.Class中:

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

我想将这个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区域转换为arrayList。它说行

 itr = userList.iterator();

犯错误。

感谢您的帮助。


我收到此错误:java.lang.ClassCastException:bean.Zone无法在下面代码的第一行转换为java.util.ArrayList

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

1 个答案:

答案 0 :(得分:3)

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

2 你需要像

一样投射它
List<Zone> userList =  (List<Zone>)request.getAttribute("userList");

3 您需要使用JSTL在视图和逻辑之间进行明确分离


另见