博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC学习笔记---高级参数绑定
阅读量:3704 次
发布时间:2019-05-21

本文共 2428 字,大约阅读时间需要 8 分钟。

目录

 


高级参数绑定

项目背景:


一、绑定数组

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

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

1.JSP修改

itemList.jsp增加多选框,提交url是queryItem.action

查询条件:
商品名称: 商品价格:
商品列表:
选择 商品名称 商品价格 生产日期 商品描述 操作
<%--
--%>
修改

页面选中多个checkbox向controller方法传递,本身属于一个form表单,提交url是queryItem.action

2.controller

Controller方法中可以用 String[] 接收,或者pojo的 String[] 属性接收,两种接收方式任选其一即可。

  • Controller方法中用 String[] 接收:
@RequestMapping("queryItem")	public String queryItem(QueryVo vo,Integer[] ids,Model model){		if(vo.getItem() != null){			System.out.println(vo.getItem());		}		if(ids != null && ids.length > 0){			for(Integer id:ids){				System.out.println(id);			}		}		//模拟搜索商品		List
itemList = itemService.getItemList(); model.addAttribute("itemList", itemList); return "itemList"; }
  • pojo的 String[] 属性接收:

(1)定义QueryVo:

private Integer[] ids;	public Integer[] getIds() {		return ids;	}	public void setIds(Integer[] ids) {		this.ids = ids;	}

(2)修改queryItem方法:

@RequestMapping("queryItem")	public String queryItem(QueryVo vo,Integer[] ids){                                System.out.println(queryVo.getItem().getId());                System.out.println(queryVo.getItem().getName());                                System.out.println(queryVo.getIds().length);                System.out.println(ids.length);		                return "success";	}

二、绑定List

需求:实现商品数据的批量修改

需求分析:

在商品列表页面中可以对商品信息进行修改

可以批量提交修改后的商品列表

1.修改jsp页面

修改

注:varStatus属性常用参数总结如下:

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

2.开发pojo

List中存放对象,并将定义的List放在包装类QueryVo中,使用包装pojo对象接收

//用对象的属性接收List集合	private List
itemList; public List
getItemList() { return itemList; } public void setItemList(List
itemList) { this.itemList = itemList; } public Integer[] getIds() { return ids; }

3.修改ItemController

在ItemController中的queryItem方法中增加输出语句,判断是否成功绑定

if(vo.getItemList() != null && vo.getItemList().size()>0){			for(Item item : vo.getItemList()){				System.out.println(item);			}		}

 

转载地址:http://pfqcn.baihongyu.com/

你可能感兴趣的文章
PigyChan_LeetCode 109. 有序链表转换二叉搜索树
查看>>
PigyChan_LeetCode 83. 删除排序链表中的重复元素
查看>>
PigyChan_LeetCode 82. 删除排序链表中的重复元素 II
查看>>
PigyChan_LeetCode 143. 重排链表
查看>>
PigyChan_LeetCode 24. 两两交换链表中的节点
查看>>
PigyChan_LeetCode 445. 两数相加 II
查看>>
python3-matplotlib自学笔记
查看>>
ROS机器人操作系统入门--(一)ROS介绍与安装
查看>>
Wifi密码攻击实验
查看>>
cryptool1使用教程
查看>>
java+serlvet+ajax+session实现登录注销
查看>>
EEE模式的3DES安全性分析
查看>>
Python为什么要使用虚拟环境-Python虚拟环境的安装和配置-virtualenv
查看>>
你们会选择哪种深度学习开源框架?Pytorch还是Caffe、TensorFlow?各家的优缺点都有哪些?
查看>>
C++和C的不同之处(不断自更新)自学笔记
查看>>
指针小结(摘自C++程序设计教程)
查看>>
HTML基础
查看>>
几个概念
查看>>
数据库简介
查看>>
MySQL操作
查看>>