我的 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 in the first line of the code below
viewList = (ArrayList<Zone>)itr.next();
int id = Integer.parseInt(viewList.get(0).toString());
viewItr = viewList.iterator();
最佳答案
1 您正在检查该属性是否存在于请求中,然后您正在从 session 中读取它
2 你需要像这样转换它
List<Zone> userList = (List<Zone>)request.getAttribute("userList");
3 你需要使用JSTL来明确区分 View 和逻辑
另见
关于java - 无法在 JSP 中显示 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371968/