1. 程式人生 > >springmvc使用陣列接收頁面商品列表批量刪除傳過來的引數,並完成批量刪除的操作。

springmvc使用陣列接收頁面商品列表批量刪除傳過來的引數,並完成批量刪除的操作。

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>

 

  將批量刪除的引數傳到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;
        
    }

 我們在頁面中選中需要刪除的記錄,會在控制檯輸出需要刪除的記錄條數。