spring - SimpleUrlHandlerMapping 不适用于带有少量扩展名(如 dsm 或 ds)的 url

标签 spring spring-mvc

我正在尝试在 Spring 中实现 SimpleUrlHandlerMapping 。我正在使用 Spring 4.2.5 版本。

以下是我的映射

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    .....

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/hello1.dsm">hc</prop>
        </props>
    </property>
</bean>

<bean id="hc" class="com.vaannila.HelloWorldController" >
    <property name="message" value="Hello World!" />
</bean>

....

</beans>

当我运行 tomcat 时,我在控制台上收到信息消息

org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/hello1.dsm] onto handler 'hc'

但是当我在浏览器中点击 url“http://localhost:8080/SpringExample5/hello1.dsm”时,我收到请求的资源不可用错误,即 404。

后来当我将 key 更改为“/hello1.htm”时,它与相应的 url 配合得很好。我想知道将 url 映射到 Controller 时是否有关于 url 扩展的规则。

最佳答案

在 web.xml 中,调度程序 servlet url 模式配置为 .htm 扩展名

<?xml version="1.0" encoding="UTF-8"?>
............
<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>............

因此它对于“.htm”扩展名工作正常。 为了使其适用于其他扩展,我们需要在 web.xml 文件中设置相应的url-pattern

关于spring - SimpleUrlHandlerMapping 不适用于带有少量扩展名(如 dsm 或 ds)的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098893/

相关文章:

java - Spring:关闭 session 信息

java - RestTemplate 调用,其中函数的参数是 MultipartHttpServletRequest 请求

java - 访问模型中的 DAO - Spring Data MongoDB

java - 是否可以扩展 WebMvcConfigurationSupport 并使用 WebMvcAutoConfiguration?

java - OracleDriver 不接受 jdbcUrl jdbc :oracle:thin@localhost:1521/orcl

java - 如何使用 Hibernate 保留枚举类型字段?

forms - 表格:checkboxes unchecked by default

spring-mvc - 如何在SpringBootTest中向自动连线的testRestTemplate添加基本身份验证; Spring Boot 1.4

java - Spring中的策略模式和依赖注入(inject)

spring - 结合 OSGi 蓝图和 spring 配置