springmvc使用list集合实现商品列表的批量修改

时间:2023-03-09 19:48:35
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>

  页面为显示为:

springmvc使用list集合实现商品列表的批量修改

  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的方法的形参上,会报错。