1

请问这个jstl代码有什么问题?我看不到它的内容。

我的 accueil.jsp 页面的内容

<table>
       <tr>
           <th><c:out value="Numéro de compte"/></th>
           <th><c:out value="Date création"/></th>
           <th><c:out value="Date mise-à-jour"/></th>
           <th><c:out value="Libelle"/></th>
           <th><c:out value="Type devise"/></th>
           <th><c:out value="Situation compte"/></th>        
       </tr>

       <c:forEach items="${ sessionScope.listCpts }" var="liste">
           <tr>
                <td><a href="<c:url value="/menu"/>">${ liste.value.rib }</a></td>
                <td>${ liste.value.dateCréation }</td>
                <td>${ liste.value.dateMaj }</td>
                <td>${ liste.value.libelle }</td>
                <td>${ liste.value.typeDevise }</td>
                <td>${ liste.value.situationCompte }</td>
           </tr> 
       </c:forEach>
</table>

我的 doPost 方法

public static final String ATT_LIST_CPT       = "listCpts";
public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        ConnexionForm form = new ConnexionForm();

        User user = form.connecterUser( request );

        ServiceService service = new ServiceService();
        tn.bh.services.client.Service srvc = service.getServicePort();
        List<Compte> listCpts = srvc.consulterListeCpt(user.getIdentifiant());

        HttpSession session = request.getSession();

        request.setAttribute( ATT_LIST_CPT, listCpts );
        request.setAttribute( ATT_FORM, form );
        request.setAttribute( ATT_USER, user );

        if ( form.getErreurs().isEmpty() ) {
            session.setAttribute( ATT_SESSION_USER, user );
            response.sendRedirect( request.getContextPath() + "/accueil" );
        } else {
            session.setAttribute( ATT_SESSION_USER, null );
            this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
        }

}

这看起来像我生成的 html 页面。请注意,我的列表 (listCpts) 已填满。

在此处输入图像描述

4

2 回答 2

1

您将数据存储在请求范围内,然后调用 request.sendRedirect() 因此它将从客户端生成新请求,这将丢失数据

要么将数据放入会话范围

    session.setAttribute( ATT_LIST_CPT, listCpts );

或者只是转发请求而不是重定向

然后改变

${ sessionScope.listCpts }

${listCpts}
于 2013-07-15T21:28:08.277 回答
0

我认为您可以使用此访问对象的属性

${ liste.dateCréation }

代替

${liste.value.dateCréation}

并避免在属性名称中使用重音字符。

于 2013-07-15T21:59:16.367 回答