SpringMVC高级参数绑定(数组和List)
本节内容:
- 参数绑定之数组
- 将表单的数据绑定到List
复制下上篇博客中的工程,作为今天开发的工程。
一、参数绑定之数组
1. 需求
在商品列表页面选中多个商品,然后删除。
2. 需求分析
功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息。
3. 修改jsp文件
修改itemList.jsp页面,增加多选框,提交url是queryItem.action。
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>查询商品列表</title>
- </head>
- <body>
- <form action="${pageContext.request.contextPath }/deleteItem.action" method="post">
- 查询条件:
- <table width="100%" border=1>
- <tr>
- <td>商品id<input type="text" name="item.id" /></td>
- <td>商品名称<input type="text" name="item.name" /></td>
- <td><input type="submit" value="查询"/></td>
- </tr>
- </table>
- 商品列表:
- <table width="100%" border=1>
- <tr>
- <td>选择</td>
- <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>
- <input type="submit" value="删除">
- </form>
- </body>
- </html>
页面选中多个checkbox向controller方法传递。
本身属于一个form表单,提交url是queryItem.action
4. Controller
Controller方法中可以用String[]接收,或者在包装类定义一个String[] 属性接收。两种方式任选其一即可。
- @RequestMapping(value = "/deleteItem.action")
- public String deleteItem(Integer[] ids){
- for (int i : ids) {
- System.out.println(i);
- }
- return "success";
- }
二、将表单的数据绑定到List
1. 需求
实现商品数据的批量修改。
2. 开发分析
在商品列表页面中可以对商品信息进行修改。
可以批量提交修改后的商品数据。
3. 定义pojo
List中存放对象,并将定义的List放在包装类QueryVo中
使用包装pojo对象接收,如下图:
4. 改造JSP
- <c:forEach items="${itemList }" var="item" varStatus="s">
- <tr>
- <td><input type="checkbox" name="ids" value="${item.id}"/></td>
- <td>
- <input type="input" name="itemsList[${s.index}].name" value="${item.name }"/>
- </td>
- <td>
- <input type="input" name="itemsList[${s.index}].price" value="${item.price }"/>
- </td>
- <td>
- <input type="text" name="itemList[${s.index}].createtime" value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
- </td>
- <td>
- <input type="input" name="itemsList[${s.index}].detail" value="${item.detail }"/>
- </td>
- <td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td>
- </tr>
- </c:forEach>
${current} 当前这次迭代的(集合中的)项
${status.first} 判断当前项是否为集合中的第一项,返回值为true或false
${status.last} 判断当前项是否为集合中的最后一项
varStatus属性常用参数总结下:
- ${status.index} 输出行号,从0开始。
- ${status.count} 输出行号,从1开始。
- ${status.后一项,返回值为true或false
begin、end、step分别表示:起始序号,结束序号,跳跃步伐。
5. ItemController
这里只演示List的绑定,能够接收到list数据。
可以拿到数据即可,不做数据库的操作。
- //批量修改
- @RequestMapping(value = "/updateItems.action")
- public String updateItems(QueryVo queryVo){
- return "success";
- }
测试结果:
【注意】:这里是把 List<Items> itemsList 放在了包装类QueryVo中,不能把 List<Items> itemsList 直接放在Controller的方法的形参上,SpringMVC不认识。
SpringMVC高级参数绑定(数组和List)的更多相关文章
- (转)SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
http://blog.csdn.net/yerenyuan_pku/article/details/72511749 高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编 ...
- SpringMVC学习笔记之二(SpringMVC高级参数绑定)
一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...
- 高级参数绑定(数组和List绑定)
1.绑定数组: (1) 需求 在商品列表页面选中多个商品,然后删除. (2). 需求分析 功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Contr ...
- springMVC第二天——高级参数绑定与其它特性
大纲摘要: 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Controller方法返回值 4.Springmvc中异常处理 5 ...
- JAVAEE——SpringMVC第二天:高级参数绑定、@RequestMapping、方法返回值、异常处理、图片上传、Json交互、实现RESTful、拦截器
1. 课前回顾 https://www.cnblogs.com/xieyupeng/p/9093661.html 2. 课程计划 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 ...
- 什么是springMvc的参数绑定?
参数绑定通俗来讲就是从页面传过来的数据通过SpringMvc进行接收.接收的数据类型可以有: (1)SpringMvc默认支持的类型:request.session.application等. (2) ...
- springmvc(2)--参数绑定
一.以实例来看springmvc各种参数绑定方式 先定义个dto类: public class RestInDto implements Serializable { private static ...
- SpringMVC学习--参数绑定
spring参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上.springmvc中,接收页面提交的数据是通过方法形参来接收 ...
- SpringMVC(三) —— 参数绑定和数据回显
参数绑定的过程:就是页面向后台传递参数,后台接受的一个过程. 默认支持的参数类型:(就是你在方法上以形参的形式去定义一下的类型,就可以直接使用它) HttpServletRequest HttpSer ...
随机推荐
- gitlab迁移
1.背景: 操作系统:CentOS Linux release (Core) gitlab版本: 使用rpm包地址:https://mirrors.tuna.tsinghua.edu.cn/gitla ...
- 【刷题】LOJ 2587 「APIO2018」铁人两项
题目描述 比特镇的路网由 \(m\) 条双向道路连接的 \(n\) 个交叉路口组成. 最近,比特镇获得了一场铁人两项锦标赛的主办权.这场比赛共有两段赛程:选手先完成一段长跑赛程,然后骑自行车完成第二段 ...
- 【刷题】BZOJ 2287 【POJ Challenge】消失之物
Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. "要使用剩下的 N - 1 物品装满容积为 x ...
- SDOI2017 R2泛做
由于各种原因,在bzoj上我day1的题一题都没过,所以这里就直接贴loj的链接好了. D1T1 龙与地下城 中心极限定理. https://en.wikipedia.org/wiki/Central ...
- Oracle中对number类型数据to_char()出现各位少0,或者值为###的处理
问题描述: 在Oracle中使用to_char()函数时当number值为小数时,常常个位0不显示 比如:select to_char(0.02) from dual,结果为.02 改进为 selec ...
- debian9使用systemd部署etcd集群
在centos上,是可以直接使用yum安装etcd的: # yum list | grep etcd etcd.x86_64 3.2.9-3.el7 @extras 但是,在debian上却没有安装包 ...
- 使用easyui实现双击列表中某个值直接对其进行修改
var editCell = undefined; $('#dg').datagrid({ url:'DwzServlet', iconCls:'icon icon-list' , queryPara ...
- 微信公众号用户OpenID同步导出系统
一.简介 同步公众账号用户信息,包括OpenID.昵称.头像.地区等. 二.主要功能 同步公众账号用户 OpenID,以及昵称.头像.性别.地区.关注时间等,支持认证订阅号.认证服务号. 支持超过1万 ...
- [CEOI2015 Day2]世界冰球锦标赛 (双向搜索)
题目描述 [CEOI2015 Day2]世界冰球锦标赛译自 CEOI2015 Day2 T1「Ice Hockey World Championship」 今年的世界冰球锦标赛在捷克举行.Bobek ...
- redhat7配置本地yum源
1.首先是要有一个iso文件,并将这个文件挂载到某个目录 挂载: 配置: 检验: yum list 现在你就可以在没有网的情况下,安装软件了~~~