我们有什么办法让Spring中的PathVariable名称不区分大小写?

时间:2018-03-12 05:25:11

标签: spring-mvc

我有一个URI https://localhost/Message/message?id=10,它会给出id = 10的消息详细信息。

我想在输入URI时获得相同的响应,如下所示(此处路径变量具有不同的情况)

 https://localhost/Message/message?id=10 
 https://localhost/Message/Message?ID=10 
 https://localhost/Message/mEssage?Id=10 
 https://localhost/Message/MESSAGE?iD=10 

1 个答案:

答案 0 :(得分:1)

对于URI / PathVariable(消息)名称: Spring 4.2+支持不区分大小写的路径匹配的配置。 您可以按如下方式对其进行配置:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        AntPathMatcher matcher = new AntPathMatcher();
        matcher.setCaseSensitive(false);
        configurer.setPathMatcher(matcher);
    }
}

对于@RequestParam /请求参数(ID)部分:

你必须手动完成 - Spring Boot中没有开箱即用的支持。基本概念是你必须实现一个自定义servlet过滤器,它可以标准化HttpServletRequest中的参数 - 例如您可以在将它们传递给String.toLowerCase()之前向所有@RestController申请,其中您将所有请求参数绑定定义为较低的值。