我正在尝试在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'
但是当我在浏览器中点击“http://localhost:8080/SpringExample5/hello1.dsm”网址时,我得到的请求资源不可用,即404.
稍后当我将密钥更改为“/hello1.htm”时,它对各自的URL工作正常。我想知道在将url映射到控制器时是否有关于url扩展的规则。
答案 0 :(得分:0)
在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
。