SpringMVC - @MatrixVariable || Map的遍历
时间:2018-12-20
本文章向大家介绍SpringMVC - @MatrixVariable || Map的遍历,主要包括SpringMVC - @MatrixVariable || Map的遍历使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一. @MatrixVariable的使用
/owners/42;q=11/pets/21;s=23;q=22
上述url需要使用springmvc的矩阵变量注解 - @MatrixVariable
springmvc的配置文件里添加 :<mvc:annotation-driven enable-matrix-variables="true"/>
方式(一):
@ResponseBody
@RequestMapping(value = "/owners/{ownerId}/pets/{petId}")
public String test2(@PathVariable String ownerId, @MatrixVariable(pathVar = "ownerId", value = "q", required = false) String q1,
@PathVariable String petId, @MatrixVariable(pathVar = "petId", value = "q", required = false) String q2) {
System.out.println(ownerId);
System.out.println(q1);
System.out.println(petId);
System.out.println(q2);
return "success";
}
@PathVariable : 获取 {ownerId} 和 {petId} 这样的参数。
System.out.println(ownerId) ---- 输出:42
System.out.println(petId) ----- 输出:21
@MatrixVariable:矩阵变量
(1). pathVar = "ownerId" ,意味着处理范围为: 42;q=11
(2). value = "q", 指定pathVar里的 变量q。
(3). required = false , url可以没有这个变量q,默认是true。
上述程序将输出:42 11 21 22
方式(二):
@ResponseBody
@RequestMapping(value = "/owners/{ownerId}/pets/{petId}")
public String test2(@MatrixVariable Map<String, String> matrixVars,
@MatrixVariable(pathVar = "petId") Map<String, String> petMatrixVars) {
Iterator<Map.Entry<String, String>> iterator = matrixVars.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> mapEntries = iterator.next();
System.out.println(mapEntries.getKey() + ":" + mapEntries.getValue());
}
Iterator<Map.Entry<String, String>> iterator = petMatrixVars.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> mapEntries = iterator.next();
System.out.println(mapEntries.getKey() + ":" + mapEntries.getValue());
}
return "success";
}
用Map的方式接收参数。
不指定pathVar。将接收全部的{。。}参数。记录参数从左往右第一次出现的值。
比如:第一个Map输出:q = 11 s = 23
指定pathVar 为 {petId}。 将只接收其值。
比如第二个Map输出:s=23 q=22
二. Map的遍历方式
1. 迭代器方式:
public static void testMap() {
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> mapEntries = iterator.next();
System.out.println(mapEntries.getKey() + "=" + mapEntries.getValue());
}
}
2. 增强for循环:
public static void testMap2() {
for (Map.Entry<String, Integer> map : map.entrySet()) {
System.out.println(map.getKey() + "=" + map.getValue());
}
}
3. 增加for循环,分别遍历key value
public static void testMap3() {
for (String key : map.keySet()) {
System.out.println(key);
}
for (Integer value : map.values()) {
System.out.println(value);
}
}
4.遍历key,通过key找value,极不推荐的方式。
public static void testMap4() {
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println(key + value);
}
}
- HDU 3785 寻找大富翁
- Hadoop数据分析平台实战——250JSSDK数据收集引擎编写离线数据分析平台实战——250JSSDK数据收集引擎编写
- HDU 2564 词组缩写
- 约瑟夫问题方法总结
- 欧里几德及扩展欧里几德算法
- Hadoop数据分析平台实战——260用户数据ETL离线数据分析平台实战——260用户数据ETL
- # Hadoop离线数据分析平台实战——230项目数据存储结构设计Hadoop离线数据分析平台实战——230项目数据存储结构设计
- ECJTUACM16 Winter vacation training #5 题解&源码
- Codeforces 716A Crazy Computer
- Hadoop数据分析平台实战——240JavaSDK数据收集引擎编写离线数据分析平台实战——240JavaSDK数据收集引擎编写
- Hadoop离线数据分析平台实战——290活跃用户分析Hadoop离线数据分析平台实战——290活跃用户分析
- Codeforces 719B Anatoly and Cockroaches
- 【一起学Python】爬取前程无忧招聘信息并写入Excel
- 【一起学Python】爬取网易云歌词
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android Studio 更新版本之后报错: Cannot access android.arch.lifecycle.ViewModelStoreOwner
- Android各版本查询和开启悬浮窗权限
- RuntimeException: setAudioSource failed异常
- Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
- Android TV 开发之 TV视频播放器
- Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐
- 1小时真正掌握正则表达式
- Android Studio 安装配置教程 - Windows(详细版)
- Android 天气APP(八)城市切换 之 自定义弹窗与使用
- Android 接入udesk SDK实现IM
- Android 天气APP(十二)空气质量、UI优化调整
- Python+selenium 自动化-调用dom节点的click()监听事件,强力操作节点!穿透元素进行点击,节点被遮挡不可点击解决方法
- pkl是什么类型的文件?怎么来打开它?
- Python 技术篇-如何查看文本用什么类型的编码,文本编码查看方法
- Elasticsearch:设置 Elastic 账户安全