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;
        
    }

 我们在页面中选中需要删除的记录,会在控制台输出需要删除的记录条数。

 

posted on 2018-12-30 11:10  wyhluckydog  阅读(1306)  评论(0编辑  收藏  举报