如何在控制器请求映射路径中获取矩阵参数?
解决Spring中获取根请求路径矩阵参数的问题
原代码中@MatrixVariable的pathVar配置错误,导致无法获取/abc路径的矩阵参数。以下是修正方案:
修正后的代码示例
方式一:指定空字符串作为pathVar
@RequestMapping(path = "/abc") class MyController { @GetMapping void read( @MatrixVariable(pathVar = "") Map<String, List<String>> matrixVariables ) { // matrixVariables将包含键值对{x=[y]} } }
方式二:省略pathVar参数
当请求映射路径为固定值(无路径占位符)时,可直接省略pathVar,Spring会自动绑定当前路径段的矩阵参数:
@RequestMapping(path = "/abc") class MyController { @GetMapping void read( @MatrixVariable Map<String, List<String>> matrixVariables ) { // 同样能获取到{x=[y]}的矩阵参数 } }
原代码问题说明
原代码中@MatrixVariable(pathVar = "@@?")的写法不符合Spring的矩阵参数绑定规则。pathVar用于指定对应的路径变量名,当请求路径是固定的/abc时,对应的路径段没有变量名,因此需要用空字符串匹配,或直接省略该参数让Spring自动识别。
内容的提问来源于stack exchange,提问作者Jin Kwon
相关产品推荐
相关产品推荐

