【问题标题】:cannot display an arrayList in JSP无法在 JSP 中显示 arrayList
【发布时间】: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();

【问题讨论】:

    标签: java jsp servlets arraylist


    【解决方案1】:

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

    2你需要像这样投射它

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

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


    另见

    【讨论】:

      猜你喜欢
      • 2019-04-19
      • 2012-08-24
      • 2020-11-12
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 2014-01-31
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多