注册“通用”后,@RequestMapping
我的资源处理程序停止工作。
首先,我使用Thymeleaf进行此资源配置:
@Value("${ty-resource}")
private String resource;
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/resources/**").addResourceLocations(resource);
}
我的资源不在项目之外,因此我的客户可以根据自己的意愿(他要求)更新它的资源。
一切都很好,我的资源正在从 ${user.dir}/../webapp/resources/
然后我注册了@RequestMapping(value="/{department}/{category}/{subCategory}")
。
然后,我的资源开始通过此请求映射来响应,而不是从资源处理程序中响应。
我不知道该如何解决该问题。
我想到了这个:
@Value("${ty-resource}")
private String resourcesPath;
@RequestMapping('/resources')
public ModelAndView resources(@RequestParam("r") String resource) {
return new ModelAndView("redirect:"+resourcesPath+resource);
}
但是我认为这可能不是最好的答案。
即使尝试这样做,因为@RequestMapping(value="/{department}/{category}/{subCategory}")
之前已注册@RequestMapping('/resources')
,我的资源也得到的响应@RequestMapping(value="/{department}/{category}/{subCategory}")
。
- 编辑 -
例子:
<script type="text/javascript" data-th-src="@{/resources/js/components.js}"></script>
资源处理程序不响应此资源请求。春天得到它作为对@RequestMapping(value="/{department}/{category}/{subCategory}")
我通过Ordered
在Controllers中实现接口来解决此问题。
因此,我为要解决的控制器设置了更高的顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句