为动态生成的表中的每一行添加唯一的删除按钮

时间:2014-05-11 23:05:13

标签: java jsp

我使用嵌套在表行中的表单为每一行生成一个删除按钮,表单的操作是一个servlet调用,然后调用java类中的remove方法。

如何为每个按钮添加“id”值,以便将正确的car对象发送到要从我的数据库中删除的方法。

我的JSP:

<h4>Current Cars Listed</h4>
<input type="button" value="Add Car" onclick="window.location='AddCar.jsp'">
<% 
List<Car> resultList = new ArrayList<Car>();
resultList=(List<Car>)request.getAttribute("ResultList");

%>
<table border="1">
<thead title="Current Cars"/>
<tr><th>Make:</th><th>Model:</th><th>Year:</th><th>Colour:</th><th>Information:</th></tr>
<% for(int i=0; i<resultList.size(); i++){%>

<tr><td><%=resultList.get(i).getCarMake()%></td><td><%=resultList.get(i).getModel()%></td><td><%=resultList.get(i).getCarYear()%></td>
<td><%=resultList.get(i).getCarColour()%></td><td><%=resultList.get(i).getInformation()%></td>
<td><form  action="CarServlet" method="get" ><input type="submit" value="Remove" name="remove"></form></td></tr>
<% }%>


</table>

1 个答案:

答案 0 :(得分:2)

您可以在表单中添加隐藏值以添加ID:

<td>
    <form action="CarServlet" method="get">
        <input type="hidden" name="carId" value="<%= resultList.get(i).getId() %>" />
        <input type="submit" value="Remove" name="remove">
    </form>
</td>

由于您已经在使用请求属性,因此最好使用stop using scriptlets at all并使用表达式语言+ JSTL。

<table>
<thead>
    <!-- current thead -->
</thead>
<tbody>
<c:forEach items="${ResultList}" var="car">
    <tr>
        <td>${car.carMake}</td>
        <td>${car.model}</td>
        <td>${car.carYear}</td>
        <td>${car.carColour}</td>
        <td>${car.information}</td>
        <td>
            <form action="CarServlet" method="get">
                <input type="hidden" name="carId" value="${car.id}" />
                <input type="submit" value="Remove" name="remove">
            </form>
        </td>
    </tr>
</c:forEach>
</tbody>

与使用scriptlet的原始代码相比,了解上述代码的可读性和可维护性如何更好。