我的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();
答案 0 :(得分:3)
1 您正在检查请求中是否存在该属性,然后您正在从会话中读取该属性
2 你需要像
一样投射它List<Zone> userList = (List<Zone>)request.getAttribute("userList");
3 您需要使用JSTL在视图和逻辑之间进行明确分离
另见