2014-01-27 73 views
-1

我從我的servlet收到一個Arraylist。 這裏是我的JSP頁面的代碼無法在JSP中顯示bean的arraylist

<% 
String bgcolor=""; 
int count=0; 
List viewList = new ArrayList(); 
Iterator viewItr; 
Iterator itr; 
if(request.getAttribute("userList")!=null && request.getAttribute("userList")!="") 
{ 
    List<Zone> userList = (List<Zone>)request.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> 

      <% 

     } 
     count++; 
     %> 

我得到一個錯誤,它說,bean.Zone不能轉換爲ArrayList中, 錯誤是在行**viewList = (ArrayList)itr.next();** 謝謝您的幫助

+0

您正在獲取列表的應該是'Zone zone =(Zone)itr.next'。 –

+0

是的,編譯器在這裏非常清晰。你有一個列表完整的ArrayLists? – mttdbrd

回答

2

我認爲你有一個區域對象,不是Arraylist。這就是爲什麼你不能投。

您已經在迭代區域列表,並且需要投射到區域對象

Zone viewList = new Zone(); 

viewList = (Zone)itr.next(); 
1

這裏有些事情是錯誤的。

  • request.getAttribute("userList")!=""if中是錯誤的。您不應該將List與空字符串進行比較。
  • 您正在遍歷List<Zone> s,所以當您調用itr.next()時,您將得到一個不是ArrayList的Zone

因此,您的第二個while在這裏無效。您可能需要獲取並顯示來自Zone的屬性。

+0

你是對的。謝謝你的作品。 – sadzag