`

Spring MVC Url不区分大小写

阅读更多

According to this webpost you need to add both a HandlerMapping and a HandlerAdapter in Spring MVC. The Mapping maps the request to a corresponding controller, and the adapter is responsible to execute the request using the controller.

You therefore need to override the PathMatcher for both the mapper and adapter.

Ex (will make all @Controllers case-insensitive):

New Matcher:

public class CaseInsenseticePathMatcher extends AntPathMatcher {
    @Override
    protected boolean doMatch(String pattern, String path, boolean fullMatch, Map<String, String> uriTemplateVariables) {
        System.err.println(pattern + " -- " + path);
        return super.doMatch(pattern.toLowerCase(), path.toLowerCase(), fullMatch, uriTemplateVariables);
    }
}

 applicationContext.xml:

<bean id="matcher" class="test.CaseInsenseticePathMatcher"/>

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="pathMatcher" ref="matcher"/>
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="pathMatcher" ref="matcher"/>
    <property name="webBindingInitializer">
        <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"/>
    </property>
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
        </list>
    </property>
</bean>

<bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/>

 

分享到:
评论

相关推荐

    java微信公众号MVC开发框架

    jwx是开源的java公众号开发MVC框架,基于spring配置文件和微信消息或事件注解,通过微信上下文处理一个或多个微信公众号服务请求。目的主要有两个,其一生封装微信请求xml消息为java实体对象,将返回对象转换为xml...

    section-02-6.在RestController中获取数据1

    需要注意,请求头名称不区分大小写,但其他注解如`@RequestParam`和`@PathVariable`是区分大小写的。 5. **Cookie值**: 使用`@CookieValue`注解可获取Cookie的值,如`@CookieValue("cookieName") String cookie...

    HRRecruitApp:使用Spring 5用Java编写的简单人力资源招聘应用程序

    HRRecruitApp 一个简单的人力资源招聘应用... 在名为“ HRRecruitApp”的架构下创建表(请记住,postgres区分大小写,因此您需要使用双引号来引用架构名称)。 这是运行应用程序所需的重要SQL脚本文件的列表: sche

    《Web开发基础》作业情况(2020).pdf

    1. **JSP文件命名**:在JSP中,文件名区分大小写,因此"Boy.jsp"和"boy.jsp"被认为是不同的文件名。 2. **Web应用目录结构与URL映射**:当一个Web应用部署在服务器如Tomcat上时,文件路径与URL路径有关。在本例中,...

    java文件的上传与下载

    10. **框架支持**:现代的 Java Web 框架,如 Spring Boot,提供了更便捷的文件上传下载支持,例如 Spring MVC 中的 `MultipartFile` 接口,可以简化处理流程。 提供的 `updown` 压缩包可能包含了实现上述功能的...

    《Web技术》课程2018年秋季期末考试复习资料.docx

    - CSS代码不区分大小写,但通常推荐使用小写以保持一致性。 - 每条样式规则需使用分号 (`;`) 分隔。 - **CSS的作用**: - CSS能够实现内容与样式的分离,这有助于提高网站的可维护性和可扩展性。 - CSS支持对...

    中科软JAVA面试题

    GET将数据附在URL后面,适合少量数据且不敏感的场景;POST将数据放在请求体中,适合大量或敏感数据。 【String常用函数】 如substring(), length(), equals(), concat(), toUpperCase()等。 【Struts原理】 Struts...

    java面试题

    #### Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 通常使用`equals()`方法来判断两个对象是否相等。对于自定义对象,需要正确实现`equals()`方法。 #### JDBC调用数据库的基本步骤 1. 加载数据库...

    中级程序员必备面试题.txt

    `ByteArrayInputStream`不适合处理大文件,因为会一次性加载到内存中,可能导致内存溢出。 #### 线程切换过程 线程切换涉及保存当前线程上下文、恢复新线程上下文等操作。 #### 集群环境中线程安全 在集群环境中...

    1剑盛二面准备试题.txt1剑盛二面准备试题.txt

    10. **String类的常用方法**:包括length()获取字符串长度,charAt()获取指定位置的字符,substring()截取字符串,toUpperCase()和toLowerCase()转换大小写,trim()去除字符串两端的空白字符,replace()替换字符或...

Global site tag (gtag.js) - Google Analytics