在JSTL / JSP页面中使用<c:forEach
标记时,我在知道选择了哪一行时遇到了问题。
以下是我的JSP页面的片段,它成功打印出我的会话变量中的所有用户。 UserList类中还包含userId,它对应于数据库中的rowID。
<tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.email}</td>
<td><a href="#UploadModal" data-toggle="modal"><c:set var="selectedUser" value="${user.userId}" scope="request" />Upload a File</a></td>
</tr>
</c:forEach>
</tbody>
模态链接是来自twitter Bootstrap的弹出模式。
<div id="UploadModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Upload Document for User <c:out value="${requestScope.selectedUser}"></c:out></h3>
</div>
<div class="modal-body">
<form method="post" action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data">
<table border="0">
<tr><td>File:</td>
<td><input type="file" name="photo" size="50"/></td>
</tr>
<tr><td colspan="2"><input type="submit" value="Save"></td></tr>
</table>
</form>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
我想要做的是显示所有用户的行。每个旁边都有一个链接,当你点击它时弹出模态窗体,然后UserId包含在会话变量中并显示。在将表单提交回servlet时,我可以发送文件和我想要的任何其他详细信息,以及实际选择的UserId。
不幸的是,会话变量始终将userId设置为最后一条记录的userId。
我可能做了很多错事,但我只是对于如何知道网页表中点击了什么记录感到困惑?
非常感谢任何帮助..
答案 0 :(得分:0)
在此循环中的courrse中,您将重置循环的每次迭代的var selectedUser
的值。
尝试将id
的{{1}}设置为<a href
,然后使用jquery或javascript来监听点击,然后获取该链接的user+${user.userId}
点击。
然后,您可以使用此值在id
上设置parameter
(使用jquery或javascript),然后将其与其他数据一起发布。