请问这个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)已填满。
答案 0 :(得分:1)
您正在请求范围中存储数据,然后您正在调用request.sendRedirect(),因此它将从客户端生成新请求,这将丢失数据
将数据放入会话范围
session.setAttribute( ATT_LIST_CPT, listCpts );
或只是转发请求而不是重定向
然后更改
${ sessionScope.listCpts }
到
${listCpts}
答案 1 :(得分:0)
我认为你可以使用这个
来访问对象的属性$ {liste.dateCréation}
而不是
$ {liste.value.dateCréation}
并避免在属性名称中使用重音字符。