1.1 需求
在商品列表页面选中多个商品,然后删除。
1.2 需求分析
此功能要求商品列表页面中的每个商品前有一个checkbox,选中多个商品后点击删除按钮把商品id传给controller,根据商品id删除商品信息。
1.3 Jsp中实现
<form action="${pageContext.request.contextPath }/deleteAll.action" method="post"> 查询条件: <table width="100%" border=1> <tr> <td><input type="submit" value="批量删除" /></td> </tr> </table> 商品列表: <table width="100%" border=1> <tr> <td>商品名称</td> <td>商品价格</td> <td>生产日期</td> <td>商品描述</td> <td>操作</td> </tr> <c:forEach items="${itemList }" var="item"> <tr> <td> <input type="checkbox" name="ids" value="${item.id}"> </td> <td>${item.name }</td> <td>${item.price }</td> <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss" /></td> <td>${item.detail }</td> <td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td> </tr> </c:forEach> </table> </form>
注意:标签的name属性的名字应该与pojo类型定义的属性相同。
将批量删除的参数传到deleteAll.action中,通过controller进行处理。
1.4 Controller
controller方法可以使用Integer[]接收,或者pojo的Integer[]属性接收。两种方式任选其一即可。但是我们一般选择pojo对象,因为面向对象能传对象就传对象。
在pojo中定义为:
package com.huida.vo; import com.huida.pojo.Items; public class QueryVo { private Items items; private Integer[] ids; public Items getItems() { return items; } public void setItems(Items items) { this.items = items; } public Integer[] getIds() { return ids; } public void setIds(Integer[] ids) { this.ids = ids; } }
在controller中定义为:
//传参的时候可以穿Integer,但是我们一般穿对象 @RequestMapping("deleteAll") public String deleteAll(QueryVo queryVo){ System.out.println(queryVo.getIds().length); return null; }
或者我们直接使用Integer[]进行传参
@RequestMapping("deleteAll") public String deleteAll(Integer[] ids){ System.out.println(ids.length); return null; }
我们在页面中选中需要删除的记录,会在控制台输出需要删除的记录条数。