首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring MVC:避免URL中的文件扩展名

Spring MVC:避免URL中的文件扩展名
EN

Stack Overflow用户
提问于 2012-03-14 21:57:15
回答 2查看 4.7K关注 0票数 2

我看过这篇文章:Spring MVC; avoiding file extension in url?

这不管用..。当我使用

代码语言:javascript
运行
复制
<servlet-mapping>
    <servlet-name>Spring-MVC-Dispatcher-Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我得到了警告

代码语言:javascript
运行
复制
WARNING: No mapping found for HTTP request with URI [/CMT/WEB-INF/jsp/content/edit.jsp] in DispatcherServlet with name 'Spring-MVC-Dispatcher-Servlet'
WARNING: No mapping found for HTTP request with URI [/CMT/WEB-INF/jsp/content/edit.jsp] in DispatcherServlet with name 'Spring-MVC-Dispatcher-Servlet'

我的默认设置是使用*.htm和URL http://localhost:8080/CMT/content/edit.htm,但我希望使用http://localhost:8080/CMT/content/edit

我还需要能够加载资源,比如位于CMT/jsCMT/cssCMT/lib中的js/css文件

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-15 12:03:53

您是否正确地映射了您的URL,以便同时捕获edit.htmedit?尝试(假设CMT是您的contextPath):

代码语言:javascript
运行
复制
@RequestMapping(value = "/content/edit*")

要让资源正常工作,您需要在spring配置中指定<mvc:resources .../>。请参阅Spring doco here

编辑: Spring提供了一个DefaultAnnotationHandlerMapping bean,它通常可以捕获可能的扩展,如.html、.xml等。我正在开发的应用程序通过以下方式关闭了这一功能:

代码语言:javascript
运行
复制
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="useDefaultSuffixPattern" value="false"/>
</bean>

因此,您通常不必担心扩展。

票数 0
EN

Stack Overflow用户

发布于 2012-03-15 07:04:28

在路径中包括目录组件。(您可能不希望映射匹配所有内容,包括内部请求。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9703382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档