不确定这是否正是您想要的,但您可以做这样的事情。
@Path("/foo/bar/{other: .*}
public Response foo(@PathParam("other") VariableStrings vstrings) {
String[] splitPath = vstrings.getSplitPath();
...
}
其中 VariableStrings 是您定义的类。
public class VariableStrings {
private String[] splitPath;
public VariableStrings(String unparsedPath) {
splitPath = unparsedPath.split("/");
}
}
请注意,我没有检查此代码,因为它只是为了给您一个想法。这是可行的,因为变量字符串可以被注入,因为它们的构造函数只接受一个字符串。
查看文档。
最后,作为使用 @PathParam 注释注入 VariableString 的替代方法,您可以将此逻辑包装到您自己的自定义 Jersey Provider 中。该提供程序将注入一个“VariableStrings”或多或少与上面相同的方式,但它可能看起来更干净一些。不需要 PathParam 注释。
Coda Hale 给出了一个很好的概述。