2017-04-21 12 views
1

私が作っているWebアプリケーションの機能を終了するのに問題があります。結果セットをarraylistに保存する

次のコードは、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); 

エラーが現れて起動します。

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) 

短いストーリー、ArrayListに格納されたBeanのリストがあります。全体を反復するには2つのループが必要ですデータが表示されますが、エラーが発生します。

答えて

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

...あなたにアレックスをありがとうございました。 悲しいことに、それは戻っているが、それは、SQL結果セットを格納する方法だ場合のみ1「チケット」 http://hpics.li/6cc6741 http://hpics.li/b9ffdb5 – TheNorth

+0

あなたは確認してくださいことはできますか? 'try { resultSet = preparedStatement.executeQuery(); if(resultSet.next()){ ticket = map(resultSet); //マップ関数は、行の結果をBeanに格納します。 liste.add(ticket); } } ' – TheNorth

+0

' if'の代わりに 'while(resultSet.next())'を使いたかったと思います。 – Alex

関連する問題