@MatrixVariable 矩阵变量

RFC3986定义了在URI中包含name-value的规范!这也是spring4.0众多吸引人的新特性之一。先来举个小例子:

比如URI是这样的:

//GET /pets/42;q=11;r=22

对应的方法定义则是:

@RequestMapping(value = "pets/{petId}, method = RequestMethod.GET)

public void findPet(@PathVariable String petId,@MatrixVariable int q){

...

}

相应的petId和q都会被映射到这个方法,另外注意如果匹配不到,则会报“bad request”,并且如果你的URI只是“/pets/42”的话也是可以映射到这个方法的,只是要把设置为@MatrixVariable(required =false)还有一种方式就是:

比如你的URI是:

//GET /owners/42;q=11/pets/21;q=22

@RequestMapping(value = "/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)

public void findPet(

@MatrixVariable(value = "q",pathVar="ownerId") int q1,

@MatrixVariable(value = "q",pathVar="petId") int q2)

}

此处q1=11,q2=22.

当然也可以使用Map作为方法入参:

比如你的URI为:

//GET /owners/42;q=11;r=12/pets/21;q=22;s=23

对应方法为:

@RequestMapping(value = "/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)

public void findPet(

@MatrixVariable Map<String,String> matrixVars,

@MatrixVariable(pathVar = "petId") Map<String,String> petMatrixVars){

...

}

那么此处:

matrixVars = ["q" : [11,22], "r" : 12, "s" : 23]

petMatrixVars = ["q" : 11,"s" : 23]

以上例子来自reference,所以想深入了解spring 4.0或者javaconfig或者spring boot等玩意,去看reference吧!

时间: 2024-08-25 06:53:34

@MatrixVariable 矩阵变量的相关文章

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

一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作.方法). 1.1.实现接口Controller定义控制器 Controller是一个接口,处在包org.springframework.web.servlet.mvc下,接口中只有一个未实现的方法,具体的接口如下所示: package org.springframework.web.servlet.

Spring MVC 使用矩阵变量绑定参数

RFC3986 定义了在 URI 中包含 name-value 的规范.随之在 Spring MVC 3.2 中出现了 @MatrixVariable 注解,该注解的出现使得开发人员能够将请求中的矩阵变量(MatrixVariable)绑定到处理器的方法参数中.而 Spring 4.0 更全面地支持这个规范,这也是 Spring 4.0 众多吸引人的新特性之一.接下来我们就一起来了解这个新特性的使用方式. 在 Matrix Variable 中,多个变量可以使用 “;”(分号)分隔,例如: /b

Springboot使用MatrixVariable 注解

    根据 URI 规范 RFC 3986 中 URL 的定义,路径片段中可以可以包含键值对.规范中没对对应的术语.一般 “URL 路径参数” 可以被应用,尽管更加独特的 “矩阵 URI” 也经常被使用并且相当有名.在 Spring MVC 它被成为矩阵变量     矩阵变量可以出现在任何路径片段中,每一个矩阵变量都用分号(;)隔开.比如 “/cars;color=red;year=2012”.多个值可以用逗号隔开,比如 “color=red,green,blue”,或者分开写 “color=

@MatrixVariable的使用

@MatrixVariable的使用 博客分类: J2EE 在Spring3.2 后,一个@MatrixVariable出现了,这个注解的出现拓展了URL请求地址的功能. Matrix Variable中,多个变量可以使用“;”(分号)分隔,例如: Java代码   /cars;color=red;year=2012 如果是一个变量的多个值那么可以使用“,”(逗号)分隔 Java代码   color=red,green,blue 或者可以使用重复的变量名: Java代码   color=red;

Spring MVC之RequestMapping

第一部分.概述 /**映射URL到控制器类或处理程序*/@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface RequestMapping { /** * 指定映射名称 * 支持控制器和方法 * 同时支持控制器和方法时,使用"#"分隔 */ String name() default "&quo

SpingMVC 核心技术帮助文档

SpringMVC 框架使用技巧 声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术 对于觉得篇幅长的文档,建议大家使用快捷键crtl + F,搜索关键字查询较为方便. 欢迎加群JAVA编程交流群 574337670 21.1 Spring Web MVC框架简介 Spring的模型-视图-控制器(MVC)框架是围绕一个 DispatcherServlet 来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射.视图渲

spring注解预览

从Java5.0开始,Java开始支持注解.Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解.相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架的方式. 现在越来越多的项目也都在使用注解做相关的配置,但Spring的注解非常多,相信很多注解大家都没有使用过.本文就尽量全面地概括介绍一下Spring中常用的注解. 一. 核心注解 @Required 此注解用于bean的setter方法上.表示此属性是必须的,必须在配置阶段注入,否则会抛出Be

SpringMVC之基于注解的Controller

参考博客:https://www.cnblogs.com/qq78292959/p/3760560.html Controller注解: 传统风格的Controller需要实现Controller接口,而现在我们只需要用注解就行了. 基于注解的控制器有几个优点,1.一个控制器可以处理多个action(动作),而一个实现 Controller接口的控制器只能处理一个动作.    2.基于注解的控制器请求映射不需要存储在配置文件中,使用RequesetMapping注解类型就可以对一个方法进行请求处

基于OpenCV立体视觉标定和校正

这几天学习双目视觉标定,分别使用了两种工具:OpenCV和Matlab.Matlab的效果非常稳定,但是一开始OpenCV的效果很糟糕,要不是出现中断就是标定出来的结果数值很大.经过了几天的不断调试和更改,终于把OpenCV的立体视觉标定和校正的程序写出来了.立体标定时计算空间上的两台摄像机几何关系的过程,立体校正则是对个体图像进行纠正,保证这些图像可以从平面对准的两幅图像获得.程序的框架如下: 1.读取左右相机图片序列 双目相机的图片序列放在Demon的路径下,左右相机的图像的名字分别存放在两