@MatrixVariable的使用

博客分类:

 

在Spring3.2 后,一个@MatrixVariable出现了,这个注解的出现拓展了URL请求地址的功能。
Matrix Variable中,多个变量可以使用“;”(分号)分隔,例如:

  1. /cars;color=red;year=2012

如果是一个变量的多个值那么可以使用“,”(逗号)分隔

  1. color=red,green,blue

或者可以使用重复的变量名:

  1. color=red;color=green;color=blue

下面来一个例子说明:

  1. //请求URL: GET /pets/42;q=11;r=22
  2. @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET)
  3. public voidfindPet(@PathVariableString petId, @MatrixVariable intq) {
  4. // petId == 42
  5. // q == 11
  6. }

再复杂一点就是这个例子:

  1. // GET /owners/42;q=11/pets/21;q=22
  2. @RequestMapping(value = "/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
  3. public voidfindPet(
  4. @MatrixVariable(value="q", pathVar="ownerId") intq1,
  5. @MatrixVariable(value="q", pathVar="petId") intq2) {
  6. // q1 == 11
  7. // q2 == 22
  8. }

针对每一个Parh Variable绑定一个Matrix Variable,然后使用 value 和 pathVar属性就能找到该值。

另外,正对Matrix Variable也是可以指定自身的的属性,例如,是否必须,默认值。

下面这个例子说明:

  1. // GET /pets/42
  2. @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET)
  3. public voidfindPet(@MatrixVariable(required=true, defaultValue="1") intq) {
  4. // q == 1
  5. }

最后说明一下,如果要开启Matrix Variable功能的话,必须设置 RequestMappingHandlerMapping 中的 removeSemicolonContent 为false.

一般情况不用你手动去设置这个属性,因为这个属性默认就是false ,如果你碰见Matrix Variable功能未开启的时候就可以看看是不是误设置这个属性为true了。

结束

@MatrixVariable的使用的更多相关文章

  1. SpringBoot魔法堂:@MatrixVariable参数注解使用详解

    前言 RFC3986定义URI的路径(Path)中可包含name-value片段,扩充了以往仅能通过查询字符串(Query String)设置可选参数的囧境. 假如现在需要设计一个用于"搜索 ...

  2. Springboot使用MatrixVariable 注解

        根据 URI 规范 RFC 3986 中 URL 的定义,路径片段中可以可以包含键值对.规范中没对对应的术语.一般 "URL 路径参数" 可以被应用,尽管更加独特的 &qu ...

  3. springboot开启矩阵传参MatrixVariable

    /** *   根据 URI 规范 RFC 3986 中 URL 的定义,路径片段中可以可以包含键值对. * 规范中没对对应的术语.一般 "URL 路径参数" 可以被应用,尽管更加 ...

  4. @RequestAttribute与@MatrixVariable

    @RequestAttribute 它只能使用在方法入参上,从request请求参数中获取对应的属性值. //路径跳转 @GetMapping("/goto") public St ...

  5. SpringBoot中请求参数 @MatrixVariable 矩阵变量

    一.矩阵变量请求格式 /users;id=1,uname=jack 二.SpringBoot开启矩阵请求 首先查看springboot源码关于矩阵部分的内容 在 WebMvcAutoConfigura ...

  6. SpingMVC 核心技术帮助文档

    声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术,当前最新版本是4.3,4.2的版本已经经是很新的了,所以非常值得大家一读,对于读完这篇文档感觉 ...

  7. Spring MVC 学习总结(三)——请求处理方法Action详解

    Spring MVC中每个控制器中可以定义多个请求处理方法,我们把这种请求处理方法简称为Action,每个请求处理方法可以有多个不同的参数,以及一个多种类型的返回结果. 一.Action参数类型 如果 ...

  8. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作. ...

  9. 由一个异常开始思考springmvc参数解析

    首先记录一下异常,以及异常出现的原因和解决方案 异常主要信息: -- ::, ERROR [.jsp] - Name for argument type [java.lang.String] not ...

随机推荐

  1. eclipse设置代码折叠展开快捷键

    /** * 1.General->Editors->Structured Text Editors -> Enable folding 打勾 * .Java->Editors- ...

  2. 缓存注解@Cacheable、@CacheEvict、@CachePut使用及注解失效时间

    从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管理的支持.Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该 ...

  3. python开发应用之-时间戳

    golang 获取时间戳用time.Now().Unix(),格式化时间用t.Format,解析时间用time.Parse package main import ( "fmt" ...

  4. samba服务器的搭建和用户权限,文件夹权限设置

    一.简介:samba服务是基于netbios  安装: 通过yum安装 [root@localhost ~]# yum install samba samba-client samba-swat 查看 ...

  5. luoguP2768: 珍珠项链(矩阵乘法优化DP)

    题意:有K种珍珠,每种N颗,求长度为1~N的项链,包含K种珍珠的项链种类数.N<=1e9, K<=30; 思路:矩阵快速幂,加个1累加前缀和即可. #include<bits/std ...

  6. test20190925 老L

    100+0+0=100.概率题套路见的太少了,做题策略不是最优的. 排列 给出 n 个二元组,第 i 个二元组为(ai,bi). 将 n 个二元组按照一定顺序排成一列,可以得到一个排列.显然,这样的排 ...

  7. SringBoot启动报日志配置错误-logback检测异常

    最近在启动项目的时候,报错,报错的原因是springBoot日志配置文件不对. 由于自己是刚接触springboot,是同事帮忙解决的,自己非常感谢! 先总结如下: 1.首先,找到logback-sp ...

  8. Tips on Python

    python是一种解释性文件,代码要通过解释器解释运行.python解释器就是python.exe这个程序. pip也是一个pip.exe的程序,是用来管理python的第三方库. 有两种执行方式:脚 ...

  9. 2019-2020-1 20199302《Linux内核原理与分析》第九周作业

    一.进程调度的时机 硬中断和软中断 中断:程序执行过程中的强制性转移到操作系统内核相应的处理程序,起到切出指令流的作用. 中断处理程序:与进程无关的内核指令流. 进程切换:切换两个进程的内核堆栈. 硬 ...

  10. IntelliJ IDEA 查找两个字符之间任意内容正则表达式

    表达式: A.*?B(“.“表示任意字符,“?”表示匹配0个或多个)