2014-01-27 3 views
3

내 bean은 Zone이라고 불리며, 최대 절전 모드를 사용하는 SQL Server의 모든 영역을 가지고 있습니다. DAO.Class에서 :은 JSP에 arrayList를 표시 할 수 없습니다.

List zones = session.createQuery("FROM Zone").list(); 

나는 JSP와 서블릿에서이 목록을 보내려고합니다. 내 JSP에서

List result = dao.getListZone(); 
request.setAttribute("userList",result); 
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/home.jsp"); 
dispatcher.forward(request,response); 

servlet.class

에서 는 :

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

1 아래의 코드의 첫 번째 줄에의 java.util.ArrayList 캐스트 할 수없는 당신이 이 속성은 요청에 존재하는지 확인하고 다음 세션에서 그것을 읽는

2 당신은

처럼 캐스팅 할 필요가
List<Zone> userList = (List<Zone>)request.getAttribute("userList"); 

3 당신은


는 또한

를 참조 뷰와 로직 사이의 명확한 분리를 만들기 위해 JSTL을 사용할 필요가
관련 문제