【SpringMvc】05 高级参数绑定

1、绑定数组(批量删除)

1.1 需求

在商品列表页面选中多个商品,然后删除。

1.2需求分析

此功能要求商品列表页面中的每个商品前有一个checkbook,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息。

1.3 jsp实现

<c:forEach items="${itemList }" var="item">
<tr>
	<td><input name="ids" value="${item.id}" type="checkbox"></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>

1.4 QueryVo

	private String[] ids;
	public String[] getIds() {
		return ids;
	}

	public void setIds(String[] ids) {
		this.ids = ids;
	}

1.5 Controller

	@RequestMapping("/deleteAll")
	private void deleteAll(QueryVo vo)throws Exception{
		System.out.println(vo);
		
	}

2、将表单的数据绑定到List

2.1 需求

实现商品数据的批量修改

2.2 需求分析

要想实现商品数据的批量修改,需要在商品列表中可以对商品信息进行修改,并且可以批量提交修改后的商品数据。

2.3 jsp页面

注意:name="itemsList[${status.index }].name" 中的itemsList不要和遍历中de ${itemList}名字冲突

           name中的写法

<c:forEach items="${itemList }" var="item" varStatus="status">
<tr>
<!-- 批量删除和修改的复选框 -->
	<td><input type="checkbox" name="ids" value="${item.id }"></td>
	<td><input type="hidden" name="itemsList[${status.index }].name" value="${item.name }">${item.name }</td>
	<td><input type="hidden" name="itemsList[${status.index }].price" value="${item.price }">${item.price }</td>
	<td><input type="hidden" name="itemsList[${status.index }].createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>">
	
			<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
	<td><input type="hidden" name="itemsList[${status.index}].detail" value="${item.detail }">${item.detail }</td>
	
	<td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td>

</tr>
</c:forEach>

2.4 QueryVo

public class QueryVo {

	private Items items;
//	批量删除使用
	private String[] ids;
//	批量修改使用
	List<Items> itemsList;


	public List<Items> getItemsList() {
		return itemsList;
	}

	public void setItemsList(List<Items> itemsList) {
		this.itemsList = itemsList;
	}

2.5 varStatus属性常用参数总结下

${status.index}      输出行号,从0开始。
${status.count}      输出行号,从1开始。
${status.current}   当前这次迭代的(集合中的)项
${status.first}  判断当前项是否为集合中的第一项,返回值为true或false
${status.last}   判断当前项是否为集合中的最后一项,返回值为true或false
begin、end、step分别表示:起始序号,结束序号,跳跃步伐。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值