1

我在使用 Spring MVC 时遇到问题:

我写了一个Controller,一个名为

@RequestMapping("/{moduleName}/{subModuleName}")
public ModelAndView getModuleContent(@PathVariable String moduleName, @PathVariable String subModuleName) {
     ...
}
的方法,

现在的问题是,当我访问静态资源时,例如:

http://www.mytomcat:8080/images/testpng


它会映射该控制器,但我不想要这个,我该如何解决冲突?

4

3 回答 3

1

尝试为路径变量指定正则表达式模式:

@RequestMapping(value = "/{year:\\d+}/{month:\\d+}/**", method = RequestMethod.GET)

这有助于 spring 避免与<mvc:resources/>映射到路径之类的冲突/images/**。如果您的路径变量可以包含除“图像”之外的所有内容,您可以尝试像这样的正则表达式(?!images)

于 2014-04-30T08:14:12.677 回答
0

您可以为资源文件夹配置资源处理程序,例如/images.

它应该有所帮助,因为这些处理程序的映射将比 更具体/{moduleName}/{subModuleName},因此资源处理程序应该优先。

于 2013-08-20T08:27:48.157 回答
0

相应地配置以下。

<mvc:resources mapping="/resources/**" location="/public-resources/"/>
于 2013-08-20T09:08:19.717 回答