2017-04-21 6 views
1

나는 만들고있는 웹 응용 프로그램의 기능을 완료하는 데 문제가 있습니다.결과 집합을 arraylist로 저장

org.apache.jasper.JasperException: An exception occurred processing JSP page /ListeTickets.jsp at line 29 
26: </tr> 
27: <c:forEach items="${ requestScope.lticket }" var="mapticket"> 
28: <tr> 
29: <c:forEach items="${mapticket}" var="ticket"> 
30: <td><c:out value="${ ticket.sujet }"/></td> 
31: <td><c:out value="${ ticket.description }"/></td> 
32: <td><c:out value="${ ticket.priorite }"/></td> 
Stacktrace: 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
: 서블릿을 통해 다음 코드는 appearently 오류를 생성하지 않았다

,

//This is the trouver (find) function, code is related to DAO pattern. 
    public ArrayList<Ticket> trouver(int id_employe) throws DAOException { 
    ArrayList<Ticket> liste = new ArrayList<Ticket>(); 
    Connection connexion = null; 
    PreparedStatement preparedStatement = null; 
    ResultSet resultSet = null; 
    Ticket ticket = null; 

    try { 
     connexion = daoFactory.getConnection(); 
     preparedStatement = initialisationRequetePreparee(connexion, SQL_SELECT_PAR_EMP, false, id_employe); 
     resultSet = preparedStatement.executeQuery(); 

     if (resultSet.next()) { 
      ticket = map(resultSet);//map function stores a row's result in a Bean. 
      liste.add(ticket); 
     } 
    } catch (SQLException e) { 
     throw new DAOException(e); 
    } finally { 
     fermeturesSilencieuses(resultSet, preparedStatement, connexion); 
    } 
    return liste; 
} 

는 : 그것은보기에 올 때

ArrayList<Ticket> lticket = ticketform.recupererTicket(request); 
request.setAttribute("lticket", lticket); 
this.getServletContext().getRequestDispatcher(VUE).forward(request, response); 

오류 게재 시작

간단히 말해서, ArrayList에 저장된 빈 목록이 있습니다. 전체 반복을 위해 두 개의 루프가 필요합니다. 데이터가 있지만 오류가 발생합니다.

답변

3

그것은 단지 하나의 forEach 코드에 따라해야한다 :

물론
<c:forEach items="${ lticket }" var="ticket"> 
<tr> 
<td><c:out value="${ ticket.sujet }"/></td> 
<td><c:out value="${ ticket.description }"/></td> 
<td><c:out value="${ ticket.priorite }"/></td> 
</tr> 
</c:forEach> 
+0

이 ... 당신에게 알렉스 감사드립니다. 슬프게도 반환하지만, 단 하나의 "티켓" http://hpics.li/6cc6741 http://hpics.li/b9ffdb5 – TheNorth

+0

당신이이 SQL 결과를 저장하는 방법은 경우 확인하십시오 수?있다 'try { resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { ticket = map (resultSet); // map 함수는 행의 결과를 Bean에 저장합니다. liste.add (ticket); } }' – TheNorth

+0

'if' 대신'while (resultSet.next()) '를 사용하기를 원합니다. – Alex