@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. 六、Linux_SSH服务器状态

    一.保持Xshell连接Linux服务器状态 1.登录服务器后 cd /etc/ssh/ vim sshd_config 找到 ClientAliveInterval 0和ClientAliveCou ...

  2. 如何在Jenkins中使用日期参数(变量)

    一.首先需要安装插件:Date Parameter Plugin 二.安装完成后,在项目中添加参数,我这里只有日期,时间的话没试过,应该也可以把 三.用${date}调用参数即可 最后邮件的附件正常~

  3. nano的简单笔记

    CTRL+c 显示行数信息 ctrl + _ 到某行 alt +m 移动光标功能 alt+y 语法矫正功能

  4. django项目中使用手机号登录

    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id 项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数 function.py文件 import rando ...

  5. 小程序之程序构造器App()

    onLaunch / onShow / onHide 三个回调是App实例的生命周期函数 “小程序”指的是产品层面的程序,而“程序”指的是代码层面的程序实例,为了避免误解,下文采用App来代替代码层面 ...

  6. LGOJP1850 换教室

    题目地址 https://www.luogu.org/problem/P1850 题解 这题的转移其实挺好想的但是方程特别长...真的特别长... 首先设\(f[i,j,0/1]\)表示当前在第\(i ...

  7. 【Selenium-WebDriver实战篇】Eclipse上的maven使用JsonObject时,添加依赖后无法自动下载相应的jar包

    ==================================================================================================== ...

  8. django-模板变量forloop

    在django的模板中,有forloop这一模板变量,颇似php Smarty中的foreach.customers, Smarty foreach如下: {foreach name=customer ...

  9. The Business Of Open Source

    http://oss-watch.ac.uk/resources/businessofopensource by Matthew Langham, Indiginox on 3 February 20 ...

  10. [Flutter + Firebase] Enable Firebase for Flutter

    Anroid Firebase Project setup: 1. In firebase console, cerate a Android app setup you can find in co ...