小编lao*_*han的帖子

Spring-MVC RequestMapping URITemplate中的可选路径变量

我有以下映射:

@RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET)
public String test(@PathVariable("first") String first,  @PathVariable("last")  
  String last) {}
Run Code Online (Sandbox Code Playgroud)

对于以下URI:

foo/a/b/c/d/e/f/g/h/bar
foo/a/bar
foo/bar
Run Code Online (Sandbox Code Playgroud)

foo映射到第一个,将bar映射到最后并且工作正常.

我想要的是将foo和bar之间的所有内容映射到单个路径参数,或者如果没有中间(如在上一个URI示例中),则为null:

@RequestMapping(value = "/{first}/{middle:[some regex here?]}/{last}", 
  method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("middle")
  String middle, @PathVariable("last") String last) {}
Run Code Online (Sandbox Code Playgroud)

因为我希望像{middle:.*}那样简单,只能映射到/ foo/a/bar,或者{middle:(.*/)*},这似乎没有映射到正则表达式.

在应用正则表达式模式之前,AntPathStringMatcher是否在"/"上进行标记?(制作跨越/不可能的模式)还是有解决方案?

仅供参考,这是在春季3.1M2

这看起来类似于@RequestMapping控制器和动态URL,但我没有看到解决方案.

java regex spring-mvc uritemplate

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

regex ×1

spring-mvc ×1

uritemplate ×1