これがまさにあなたが探していたものかどうかはわかりませんが、このようなことができます。
@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("/");
}
}
アイデアを提供することのみを目的としているため、このコードはチェックしていないことに注意してください。これが機能するのは、VariableStrings が String のみを受け取るコンストラクターのために注入できるためです。
ドキュメントをチェックしてください。
最後に、 @PathParam アノテーションを使用して VariableString を注入する代わりに、このロジックを独自のカスタム Jersey プロバイダーにラップすることもできます。このプロバイダーは、ほぼ上記と同じ方法で「VariableStrings」を挿入しますが、少しすっきりしているように見えるかもしれません。PathParam アノテーションは必要ありません。
Coda Hale が概要を説明しています。