springmvc使用list集合實現商品列表的批量修改


1將表單的數據綁定到List

1.1  需求

  實現商品數據的批量修改。

1.2  需求分析

  要想實現商品數據的批量修改,需要在商品列表中可以對商品信息進行修改,餅干且可以批量提交修改后的商品數據。

1.3 接收商品列表的pojo

  List中存放對象,並將定義的List放在包裝類中,使用包裝pojo對象接收。

package com.huida.vo;

import java.util.List;

import com.huida.pojo.Items;

public class QueryVo {

    private Items items;
    private Integer[] ids;
    private List<Items> itemList;

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

    public List<Items> getItemList() {
        return itemList;
    }

    public void setItemList(List<Items> itemList) {
        this.itemList = itemList;
    }

    
    
    
}

1.4  Jsp改造

  將批量修改的數據提交到updateAll.action中,由controller進行處理。將每一條數據存儲到itemList集合中。

<form
        action="${pageContext.request.contextPath }/updateAll.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" varStatus="status">
                <tr>
                    <td>
                        <input type="checkbox" name="ids" value="${item.id}">
                    </td>
                    <td><input type="text" name="itemList[${status.index }].name" value="${item.name }"></td>
                    <td><input type="text" name="itemList[${status.index }].price" value="${item.price }"></td>
                    <td><input type="text" name="itemList[${status.index }].createtime" value="<fmt:formatDate value="${item.createtime}"
                            pattern="yyyy-MM-dd HH:mm:ss" />"></td>
                    <td><input type="text" name="itemList[${status.index }].detail" value="${item.detail }"></td>
                    <td><a
                        href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td>

                </tr>
            </c:forEach>

        </table>
    </form>

  頁面為顯示為:

  varStatus屬性常用參數總結下:

    ${status.index}      輸出行號,從0開始。

    ${status.count}      輸出行號,從1開始。

    ${status.current}   當前這次迭代的(集合中的)項

    ${status.first}  判斷當前項是否為集合中的第一項,返回值為true或false

    ${status.last}   判斷當前項是否為集合中的最后一項,返回值為true或false

    begin、end、step分別表示:起始序號,結束序號,跳躍步伐。

1.5 controller

  這里不對數據庫進行操作。

@RequestMapping("updateAll")
    public String updateAll(QueryVo queryVo){
        List<Items> list=queryVo.getItemList();
        for(Items items:list){
            System.out.println(items.getId());
            System.out.println(items.getName());
        }
        return null;
        
    }

 注意:這里是把 List<Items> itemsList 放在了包裝類QueryVo中,不能把 List<Items> itemsList 直接放在Controller的方法的形參上,會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM