如何通过设置会话变量

时间:2014-02-03 02:25:00

标签: java jsp model-view-controller jstl

在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。

我可能做了很多错事,但我只是对于如何知道网页表中点击了什么记录感到困惑?

非常感谢任何帮助..

1 个答案:

答案 0 :(得分:0)

在此循环中的courrse中,您将重置循环的每次迭代的var selectedUser的值。

尝试将id的{​​{1}}设置为<a href,然后使用jquery或javascript来监听点击,然后获取该链接的user+${user.userId}点击。

然后,您可以使用此值在id上设置parameter(使用jquery或javascript),然后将其与其他数据一起发布。