在我的webapp(基于spring mvc)中,我有一个JSP页面,其中包含以下代码:
<c:forEach var="item2" items="${lista_hora}">
<tr>
<td>
<c:out value="${item2.hora}"/>
</td>
<c:forEach var="item" items="${lista_data}">
<td>
<c:set var="isChecked" value="${false}"/>
<c:forEach var="user" items="${lista_horarios}">
<c:if test="${item2.hora == user.hora}">
<c:if test="${item.data == user.data}">
<c:set var="isChecked" value="${true}"/>
</c:if>
</c:if>
</c:forEach>
<input type="checkbox" <c:if test="${isChecked}">checked="checked"</c:if> id="cb_001_${item.id}_${item2.id}">
<script>
$("#cb_001_${item.id}_${item2.id}").click(function(){
$.ajax({
url: "cad_horario.html",
data: { data: "${item.original}", hora: "${item2.original}" },
cache: false
}).done(function(data) {
$("#result_1").empty().append( data );
});
});
</script>
</td>
</c:forEach>
</tr>
</c:forEach>
问题在于上面的循环。该页面显示一个矩阵,其中列是日期,行是时间间隔。因此,每个复选框都是一对(日期,时间)。页面从服务器接收三个列表:日期,时间之一,以及用户在上一个会话中标记的对中的其中一个
循环所要做的是使用已标记的先前对的矩阵。但这不会发生。有人可以在这段代码中看到任何错误吗?
答案 0 :(得分:0)
好的,我解决了这个问题。发生getter方法的onde返回错误的值。更改此代码后,页面工作正常。对我来说,请继续吸取教训,更加关注这些细节。