jsp servlet将表行中的变量传递给没有表单的servlet

时间:2013-06-29 11:17:16

标签: database jsp servlets html-table

<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吗?我知道如何使用request.getParameter()从表单检索数据到servlet,但不知道在这种情况下该怎么做。 (userList数组是执行搜索功能时从数据库中检索的用户对象的arraylist。此处未包含该代码部分。)

1 个答案:

答案 0 :(得分: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>

以上内容将生成一个包含/userDetails?userId=1234之类URL的链接,映射到/userDetails的servlet将能够使用request.getParameter("userId")访问用户ID。