是否可以在springMVC@PathVariable上设置全局regexp模式?
就像在标题中一样,您知道在spring的是否可以在springMVC@PathVariable上设置全局regexp模式?,regex,spring,spring-mvc,Regex,Spring,Spring Mvc,就像在标题中一样,您知道在spring的@RequestMapping下为所有@PathVariable设置全局regexp的一些可能性吗?例如: @RequestMapping(value = "/view/{id:[a-z]{5}|[1-9]{7}}", method = RequestMethod.GET) @PreAuthorize("hasRole('XXXX')") public String viewId(@PathVariable String id, Model
@RequestMapping
下为所有@PathVariable
设置全局regexp的一些可能性吗?例如:
@RequestMapping(value = "/view/{id:[a-z]{5}|[1-9]{7}}", method = RequestMethod.GET)
@PreAuthorize("hasRole('XXXX')")
public String viewId(@PathVariable String id, Model model) {
...
}
我不想在本地将regexp设置为{id:[a-z]{5}|[1-9]{7}}
,但我想在5个地方设置它。此外,我还有配置,我不想更改:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.xxxx.yyy.zzz.controller.formatters"})
public class MediaPortalWebConfig extends WebMvcConfigurationSupport {
@Override
@Bean
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
RequestMappingHandlerMapping requestMappingHandlerMapping = super.requestMappingHandlerMapping();
requestMappingHandlerMapping.setUseSuffixPatternMatch(false);
return requestMappingHandlerMapping;
}
}
所以我知道了
setUseSuffixPatternMatch(false)的含义代码>并且必须保持在Spring配置中。< p>您可以通过扩展默认和重写方法来编写自定义的路径匹配器,例如“代码> CustomRegexPathMatcher <代码>,以便在执行与URL< /P>匹配时考虑您的正则表达式。
比你想的要多
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.xxxx.yyy.zzz.controller.formatters"})
public class MediaPortalWebConfig extends WebMvcConfigurationSupport {
@Override
@Bean
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
RequestMappingHandlerMapping requestMappingHandlerMapping = super.requestMappingHandlerMapping();
requestMappingHandlerMapping.setUseSuffixPatternMatch(false);
requestMappingHandlerMapping.setPathMatcher(new CustomRegexPathMatcher());
return requestMappingHandlerMapping;
}
}