dom*_*arr 3 java regex spring spring-mvc
下面的方法失败,出现"PatternSyntaxException:Unclosed count closure near index ..."
@RequestMapping(value ="/{id:[0-9|a-z]{15}}")
public View view(@PathVariable final String id) {
...
}
Run Code Online (Sandbox Code Playgroud)
看起来模式匹配器正在修剪过多的字符串而丢失了最后一个}.
有没有人知道这个bug的工作?我不得不将限定符放到"/ {id:[0-9 | az] +}" - 这很坦率!
这是一个解决方案.这很丑陋,但它相当于你想拥有的东西:
@RequestMapping(value = "/{id:[0-9a-z][0-9a-z][0-9a-z][0-9a-z]" +
"[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]" +
"[0-9a-z][0-9a-z][0-9a-z][0-9a-z]}") // 15 repetitions of [0-9a-z]
Run Code Online (Sandbox Code Playgroud)
如果这是获得你需要的唯一方法,你也可以使用这个怪物.
除了手动验证之外,我认为这个案例没有任何好的解决方法.毕竟,{name:regexp}引入了语法来解决映射之间的歧义而不是验证.
@Valid在@PathVariables上可能是一个解决方案,但它仅在Spring 3.1(SPR-6380)中得到承诺.
也可以随意报告Spring JIRA中的这个错误,虽然我不希望他们快速修复它,因为路径变量处理代码已经很乱了.
| 归档时间: |
|
| 查看次数: |
7115 次 |
| 最近记录: |