编程语言
首页 > 编程语言> > java – Spring MVC不区分大小写的URL

java – Spring MVC不区分大小写的URL

作者:互联网

我已经在Google和stackoverflow上寻找了这个答案,但不幸的是,所提供的解决方案要么假设有很多关于Spring MVC和Java的先前知识,要么是关于注释的不区分大小写.

因此,我不确定如何使这些解决方案适应我自己的问题,因此这个新问题的原因.

我想做的事听起来很简单.
我有一个dispatcher-servlet.xml文件,其中包含以下XML块:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="*.htm">pageController</prop>
                <prop key="*.html">pageController</prop>
                <prop key="/cms/*">pageController</prop>
                <prop key="/admin/*">adminController</prop>
            </props>
        </property>
    </bean>

我希望/ cms / *和/ admin / *键不区分大小写,但对Java和Spring MVC都不熟悉,我不明白我应该怎么做.

例如,即使有人键入/ CMS /或/ Cms /我希望它使用pageController,而此刻它只会显示404页面.

是否有人能够向我解释为了达到我想要的结果我必须做些什么?

任何帮助将不胜感激!

编辑:

根据Rupok的回答,我添加了一个类来扩展AntPathMatcher.

不幸的是对此我不熟悉我不知道如何“将它设置回SimpleUrlHandlerMapping”.

有人能够指出我正确的方向吗?

解决方法:

SimpleUrlHandlerMapping的默认匹配机制是AntPathMatcher.您可以创建自己的PathMatcher实现,也可以创建AntPathMatcher的子类,并将其设置回SimpleUrlHandlerMapping.

PathMatcher接口非常直接实现.

public class CaseInsensitiveAntPathMatcher extends AntPathMatcher {

@Override
public boolean match(String pattern, String string) {
    return super.match(pattern.toLowerCase(), string.toLowerCase()); // make this according to your need
}

}

标签:java,spring,case-insensitive,url
来源: https://codeday.me/bug/20190903/1794599.html