SimpleUrlHandlerMapping

SimpleUrlHandlerMapping

我已经在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
}

}

10-04 17:59