2014-01-27 44 views
3

我的bean被稱爲Zone,我使用Hibernate從SQL Server獲取所有區域。 在DAO.Class:無法在JSP中顯示arrayList

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> 

它說,它無法施展我的豆開發區的ArrayList。並且它說該行

itr = userList.iterator(); 

發生錯誤。

謝謝你的幫助。


我得到這個錯誤:java.lang.ClassCastException:bean.Zone不能低於

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

回答

3

被轉換爲java.util.ArrayList中的代碼的第一行你是如果要求存在屬性和檢查,那麼你是從會話閱讀它

你需要轉換像

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

您需要使用JSTL使視圖和邏輯之間的明確分離


另請參見