0
使用Jersey的先前版本(〜1.12),我用来将文本路径元素“data”与一个注释匹配(如果它出现在路径末尾),并且另一个注解如果是别的地方:使用Jersey中的JaxRS @Path注释匹配上一个路径元素
@Path("data$")
public Object getDataResource(@Context UriInfo uriInfo) {
// Matched when 'data' is the last path element
...
}
@Path("{name}")
public Object getNamedResource(@Context UriInfo uriInfo) {
// Matched when 'data' is not the last path element
...
}
在1.12和1.17之间的某一点,这种行为已发生变化,之前的模式应用于传入的URI的“$”字符转义现在。现在,第一个方法(getDataResource)从不匹配。
例如,匹配http://.../data/data
时,我希望getNamedResource
匹配第一个“数据”和getDataResource
以匹配第二个“数据”。相反,getNamedResource
现在与两者都匹配。
- 我可以恢复到我负责转义我的正则表达式的旧行为吗?
- 是否有一种新的/更好的/其他的技术只匹配URI上的最后一个路径元素?
您可以尝试在“data $”方法中使用'@ Encoded'。 –