我正在使用Spring MVC 3.2并在Apache Tomcat 1.7x中部署。我的登录网址为/web/login
,但使用网址/web/login.abc
,其中abc可以是任何文字,包括空格。
在这两种情况下,它都返回我想要避免的相同资源,并返回HTTP代码404。
尝试在 web.xml 中添加以下内容,但它没有帮助
`<beans:bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<beans:property name="useDefaultSuffixPattern" value="false" />
</beans:bean>`
答案 0 :(得分:2)
此配置取决于您在问题中省略的版本。 从Spring 4.0.3 开始,在PathMatchConfigurer
类上设置后缀属性。根据{{3}},配置应位于mvc:annotation-driven
下,例如
<mvc:annotation-driven>
<mvc:path-matching suffix-pattern="false" />
</mvc:annotation-driven>
中所述
匹配模式时是否使用后缀模式匹配
(".*")
要求。如果启用,映射到"/users"
的方法也匹配"/users.*"
。默认值为 true 。
对于 Spring 3.2 ,它应该是
<beans:bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<beans:property name="useSuffixPatternMatch" value="false"/>
</beans:bean>`
此外,如果您在配置中使用mvc:annotation-driven
元素,请记下此问题中的Biju答案docs