@RequestMapping欢迎文件
|
我的目标是将/ {any path}和* .html映射到servlet,而不映射/ *。例如:
map:
/foo
/foobar/
/bar.html
/foo/bar.html
don\'t map:
/foo.js
/bar.pdf
为了做到这一点,我有一个servlet和欢迎文件映射如下:
web.xml:
<servlet-mapping>
<servlet-name>someServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
在控制器中
@RequestMapping(value=\"/index.html\", method=RequestMethod.GET)
public ModelAndView showPage(HttpServletRequest request){
...
}
这将不起作用-不会在/test
上触发Servlet。但是,我发现如果我在/test/index.html
创建一个空白文件,那么它确实可以工作-我认为默认servlet通过找到index.html会有所帮助。
不幸的是,我不能依赖静态文件。有没有什么方法可以使这种映射有效,而不会破坏空白文件,也不会将/ *映射到servlet?
没有找到相关结果
已邀请:
1 个回复
迪擅哨乘傅
文件中的那些文件映射到默认处理程序即可,如下所示:
但是,这仅在您知道您不希望Spring处理的所有扩展名时才有效,因为您必须在
中列出每个扩展名。 如果您确实要拒绝.html以外的任何扩展名,则需要以某种方式覆盖Spring的默认行为。我不会在这里进行介绍,因为我认为以上是更好的选择。但是这个问题解释了两种可能的解决方法:spring mvc如何为* .html文件绕过DispatcherServlet?