Spring MVC 启用@MatrixVariable
原创
©著作权归作者所有:来自51CTO博客作者pyzheng的原创作品,请联系作者获取转载授权,否则将追究法律责任
今天做项目写后台,打算用
/id;start=1;end=10
的形式来传递参数,自然想到使用@MatrixVariable注解将参数绑定到控制器的方法参数上。但是请求一直失败。查资料,有人说配置文件启动MVC注解的地方得加入如下属性
<annotation-driven enable-matrix-variables="true" />
但我用的是编程方式,未用配置文件。后来找到一个方法管用:
我的配置类RestServletContextConfiguration继承WebMvcConfigurerAdapter配置类
覆盖它的configurePathMatch方法
@Override
public void configurePathMatch(PathMatchConfigurer configurer){
UrlPathHelper urlPathHelper = new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
后就可以绑定矩阵参数了。看了一下文档,大概意思是由于removeSemicolonContent的属性为true,请求过来的url自动处理掉了分号带的内容,在上述函数中将属性设为false即可工作。