我阅读了这篇文章,这与我的问题类似,但没有解决问题:
基本上,我曾经在我的 中有以下 servlet 映射web.xml
:
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/index.html</url-pattern>
<url-pattern>/channel1</url-pattern>
<url-pattern>/channel2</url-pattern>
</servlet-mapping>
在我需要映射以下网址之前,这非常有效:
/channel1/{id}/{random_text}
其中 {id} 是我的对象的数字 ID 值,而 {random_text} 仅用于“友好的 url”。我设法使用@RequestMapping
我的控制器中的 以及@PathVariable
从 URL 中提取变量来使其工作。
但是,我设法使新 URL 成功映射的唯一方法是添加
<url-pattern>/</url-pattern>
在我web.xml
的 servlet 映射的底部。但是,当我这样做时,我的所有其他页面(/channel1
, /channel2
)都会显示而无法访问静态内容(css、jsp 等);我得到一个No mapping found for HTTP request with URI
静态文件。我按照我发布的链接中的建议尝试了各种映射组合,但没有任何效果。任何帮助都会很棒!!!
更新:我在控制器中的 RequestMapping 如下所示(如果它有助于解决问题..):
@RequestMapping(value = { "/channel1/{id}", "/channel1/{id}/{text}" })