zoukankan      html  css  js  c++  java
  • 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的方法的形参上,会报错。

  • 相关阅读:
    按照指定的字符串拆分字符串,split()方法。
    charAt()取出指定位置的字符 .length()得到一个字符串的长度 indexOf()查找一个指定的字符是否存在并返回其位置 trim()去掉字符串的左右空格 substring()字符串的截取 str.replace(" ", ""); 去掉所有空格,包括首尾、中间
    字符串与字符数组的多种转换方式。
    匿名对象。
    构造方法。
    递归的练习,1.统计文件夹大小 2.删除文件夹及文件夹下的文件
    jquery零散小饼干
    jQuery review
    git解决冲突
    url、href、src
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10199890.html
Copyright © 2011-2022 走看看