无法在 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中使用ckeditor时无法显示从word中粘贴过来的图片,