0
<table id="searchTable"><%
for (int i=0; i<userList.size();i++){
User user=userList.get(i);%>
<tr>
<td id="leftSearchResult">
<span class="resultUsername">Name: <%=user.getUserName()%></span></br>
</td>
<td>
<!--Button to visit profile here-->
</td>
</tr>
<%}%>
</table>

我有这个搜索用户功能,并且对于每个结果,都会使用用户的用户名创建一个表行。我想要做的是,当您按下表格行中的访问配置文件按钮时,它将将该行中的用户名发送到 servlet。我怎么做?此外,您可以在不使用表单的情况下将变量传递给 servlet 吗?我知道如何使用 将表单中的数据检索到 servlet request.getParameter(),但不知道在这种情况下该怎么做。(userList 数组是执行搜索功能时从数据库中检索的 User 对象的数组列表。此处未包含该代码部分。)

4

1 回答 1

0

使用带有请求参数的链接。并学会不要在 JSP 中使用 scriptlet。请改用 JSP EL 和 JSTL:

<table id="searchTable">
    <c:forEach items="${userList}" var="user">
        <tr>
            <td id="leftSearchResult">
                <span class="resultUsername">
                    Name: <c:out value="${user.userName}"/>
                </span>
            </td>
            <td>
                <a href="<c:url value="/userDetails">
                             <c:param name="userId" value="${user.id}"/>
                         </c:url>">Details</a>
            </td>
        </tr>
    </c:forEach>
</table>

上面将生成一个带有类似 URL 的链接/userDetails?userId=1234,然后映射到的 servlet/userDetails将能够使用 访问用户 ID request.getParameter("userId")

于 2013-06-29T11:48:06.407 回答