有没有什么办法,我们做PathVariable名情况下,春季不敏感?(Is there any wa

2019-10-28 18:31发布

我有一个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 

Answer 1:

对于URI / PathVariable(消息)名称: 弹簧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)部分:

您必须手动做到这一点 - 有一个在春天开机无支持这一开箱即用。 该基地的概念是,你必须要实现自定义Servlet过滤器,它规范了PARAMS在HttpServletRequest -例如,你可以适用于所有的人String.toLowerCase()将它们传递到你之前@RestController ,在那里你把所有的请求参数结合定义为套管较低值。



文章来源: Is there any way we make PathVariable name case insensitive in Spring?
标签: spring-mvc