@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实验:hdfs shell基本命令操作(一)

    [实验目的] 1)熟练hdfs shell命令操作 2)理解hdfs shell和linux shell命令 [实验原理] 安装好hadoop环境之后,可以执行hdfs shell命令对hdfs 的空 ...

  2. ireport(1.2.7)的IllegalAccessError异常

    IllegalAccessError异常: Exception in thread "main" java.lang.IllegalAccessError: tried to ac ...

  3. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  4. suctf2019 部分web题目的复盘

    1.简单的SQL注入 一开始一直没思路,输入什么过滤什么,结束后看了大佬们的wp,感觉学到了,这里涉及到Mysql中的一个特殊模式的设置 set sql_mode=pipes_as_concat; 这 ...

  5. sqlserver2005新特性介绍

    1.更强的编程能力-CLR集成 增强了数据库的编程能力,将一些逻辑层(Bll)转移到数据库中,减少了网络中的数据流量,但是增加了服务器cpu的负荷,当我们需要操作大量的数据,但是产生很少的数据,把这种 ...

  6. nginx1.15.10配置使用非https访问返回403

    nginx版本号:nginx version: nginx/1.15.10 server { listen 443 default ssl; server_name app.test.com; if ...

  7. hexo与github page搭建博客

    安装 npm i hexo-cli -g hexo init blog cd blog npm install hexo server 发布hexo到github page npm i hexo-de ...

  8. django-提交订单

    购物车cart.html页面加form表单提交 <form method="post" action="{% url 'order:place' %}"& ...

  9. python的多线程是否没有用了

    python的多线程是否就完全没有用了呢? 相同的代码,为何有时候多线程会比单线程慢,有时又会比单线程快? 这主要跟运行的代码有关: 1. CPU密集型代码 (各种循环处理.计数等等 ),在这种情况下 ...

  10. Task 使用方法

    Task的使用方法 1. 调用无参数.无返回值方法 private void button1_Click(object sender, EventArgs e) { Task task = new T ...