@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. hive自定义函数学习

    1介绍 Hive自定义函数包括三种UDF.UDAF.UDTF UDF(User-Defined-Function) 一进一出 UDAF(User- Defined Aggregation Funcat ...

  2. 【异常】Caused by: java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

    使用@RequestParam注解,必须指定名称如: @RequestParam("date")String date

  3. 一个.Net的混淆防反编译工具ConfuserEx

    给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...

  4. 如何确定C++继承层次中的函数调用

    ```cpp //============================================================================ // Name : TS.c ...

  5. 你真的理解CountDownLatch与CyclicBarrier使用场景吗?

    原文:https://blog.csdn.net/zzg1229059735/article/details/61191679 相信每个想深入了解多线程开发的Java开发者都会遇到CountDownL ...

  6. python2和python3切换

    (1)需要将python2和python3的环境变量设置好 (2)重命名主程序 然后我们分别把两个版本的 Python 主程序 exe 改下名,3.6 版本的改名为 python3.exe,2.7 版 ...

  7. TCN时间卷积网络——解决LSTM的并发问题

    TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法.在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端. 论文名称: An Empirical Evaluation of ...

  8. 用mingw32编译ffmpeg2.7

    1.  下载x265最新源码:      下载ffmpeg源码(我用的是2.7):      下载cmake最新版本并安装:      下载SDL(我用的SDL-1.2.15):      下载min ...

  9. Ranger安装部署 - solr安装

    1. 概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方法. ...

  10. test201909027 老Z

    30+100+40=170.数据出锅*2,也是没谁了. 装饰 快要到 Mope 的生日了,Mope 希望举行一场盛大的生日派对. 派对的准备工作中当然有装饰房间啦.Mope 的房间里有按从左到右的顺序 ...