通过在jsp中迭代客户列表来填充客户数据。
<form action="CustomerUpdate" method="post">
<c:forEach var="listItems" items="${customers}">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<input type="submit" value="Edit" name="edit">
<input type="submit" value="Delete" name="delete"><br />
</c:forEach>
</form>
现在,在操作中编辑或删除我想要跟踪哪个客户需要编辑/删除的每条记录。所以在servlet中我如何访问var listItems中的customer对象。如果不可能,我需要隐藏带有值的输入变量并使用servlet中的getParameter访问它们吗?
答案 0 :(得分:3)
这只是一个关于如何做的简单示例。以这种方式更改您的代码:
<c:forEach var="listItems" items="${customers}">
<form action="CustomerUpdate" method="post">
<input type="hidden" value="${listItems.id}" name="id">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<input type="submit" value="Edit" name="action">
<input type="submit" value="Delete" name="action"><br />
</form>
</c:forEach>
<强>更新强>
为每一行创建一个表单元素,并为每一行添加一个带id
的隐藏字段。
因此,当您按下该按钮时,您将在请求中收到一个值,使您能够检测到该行。这样:
String id = request.getParameter("id");
String action = request.getParameter("action");
现在您知道id
和action
类型(编辑或删除)。
替代解决方案
请勿使用表单并提交以致电您的操作,但请使用直接链接。
<c:forEach var="listItems" items="${customers}">
<input type="hidden" value="" name="id">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<button onclick="window.location.href='CustomerUpdate?action=edit&id=${listItems.id}'">Edit</button>
<button onclick="window.location.href='CustomerUpdate?action=delete&id=${listItems.id}'">Delete</button>
</c:forEach>
答案 1 :(得分:0)
检查单击了哪个按钮:
if (request.getParameter("action") != null) //if action is not null
{
String action = request.getParameter("action");
String id = request.getParameter("id");
if (action.equals("edit")) //edit button clicked
{
//do your work here
}
else if (action.equals("delete")) //delete button clicked
{
//your work here
}
}