2014-01-27 2 views
-1

저는 내 서블릿에서 Arraylist를 받았습니다. 여기 내 JSP 페이지의 코드은 JSP에서 콩의 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

List 이 나오므로'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>을 iterating하므로 itr.next()를 호출 할 때 ArrayList가 아닌 Zone이 표시됩니다.

여기에서 두 번째 while은 유효하지 않습니다. Zone에서 속성을 가져와 표시해야 할 수 있습니다.

+0

네가 맞아. 고맙다. – sadzag

관련 문제