【问题标题】:Saving resultset results in arraylist将结果集结果保存在数组列表中
【发布时间】:2017-04-21 01:28:09
【问题描述】:

我无法完成我正在制作的网络应用程序的功能。

以下代码似乎没有产生任何错误,

    //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;
}

通过 servlet:

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 列表,需要两个循环来迭代整个数据,但是出现了错误。

【问题讨论】:

    标签: sql jsp tomcat jakarta-ee jstl


    【解决方案1】:

    根据您的代码应该只有一个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>
    

    【讨论】:

    • 当然……谢谢亚历克斯。可悲的是它正在返回,但只有一张“票”hpics.li/6cc6741hpics.li/b9ffdb5
    • 能否请您确定这是否是存储 SQL 结果集的方式? try { resultSet = preparedStatement.executeQuery(); if ( resultSet.next() ) { ticket = map( resultSet );//map function stores a row's result in a Bean. liste.add(ticket); } }
    • 我想你想使用while ( resultSet.next() ) 而不是if
    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多