我的一个控制器上有@RequestMapping:
@RequestMapping(value = { "/{folder}/{subFolder}/{page}"}, method = RequestMethod.GET)
在我的xml文件中,我定义了一个资源:
<mvc:resources mapping="/_resources/**" location="/_resources/" />
当我访问以下资源时,它由ResourceHttpRequestHandler处理:
http://www.example.com/_resources/logo.png
但是当我访问时:
http://www.example.com/_resources/extcss/bootstrap.css
它由@RequestMapping处理而不是由ResourceHttpRequestHandler处理,导致带有嵌套NumberFormatException的MethodArgumentTypeMismatchException导致“bootstrap”不是数字。
我从未遇到过其他项目的问题。
如何更改我的mvc:resources映射以包含子目录?
答案 0 :(得分:0)
默认情况下,@ RequestMapping似乎会覆盖资源映射。
要解决此问题,我使用正则表达式将{page}路径变量更改为更严格的版本:{page:[0-9] +}。
现在两个网址都运行良好,直到你开始使用只包含文件名中的数字的资源,但这种情况不常发生。