使用Spring MVC时遇到问题:
我写了一个Controller,一个名为的方法
的 @RequestMapping( “/ {MODULENAME} / {subModuleName}”)
public ModelAndView getModuleContent(@ PathVariable String moduleName,@ PathVariable String subModuleName){
...
} 下,
现在问题是,当我访问静态资源时,例如:
http://www.mytomcat:8080/images/testpng
它会映射那个控制器,但我不想这样,我该如何解决冲突?
答案 0 :(得分:1)
尝试为路径变量指定正则表达式模式:
@RequestMapping(value = "/{year:\\d+}/{month:\\d+}/**", method = RequestMethod.GET)
这有助于避免与<mvc:resources/>
映射到/images/**
之类的路径发生冲突。如果您的路径变量可以包含除&#39;之外的所有图像&#39;你可以试试这样的正则表达式:(?!images)
。
答案 1 :(得分:0)
您可以configure resource handlers查找/images
等资源文件夹。
它应该有所帮助,因为这些处理程序的映射比/{moduleName}/{subModuleName}
更具体,因此资源处理程序应该优先。
答案 2 :(得分:0)
相应地配置以下内容。
<mvc:resources mapping="/resources/**" location="/public-resources/"/>