泽西岛:将多个路径参数合并为一个

时间:2017-08-30 18:49:28

标签: java jax-rs jersey-2.0

我使用以下路径注释了我的资源。

@Path("/hello/world/{param}/{sub-resources}")

应该处理这样的请求:

/hello/world/one/blah
/hello/world/two/blah/blah/blah
/hello/world/three/a/million/other/sub-resources

我需要提取{param}及其后的所有内容,但它不起作用。

1 个答案:

答案 0 :(得分:3)

在JAX-RS中,像/hello/world/{param}这样的简单路径参数默认使用[^/]+的正则表达式,它只匹配当前路径段。

您可以通过为包含斜杠的参数指定更宽松的正则表达式来自定义此项。例如,这将匹配/hello/world下的所有网址,以及任意数量的子路径段:

@Path("/hello/world/{param:.+})

或者如果您想将顶级细分变为单独的变量,您可以这样做:

@Path("/hello/world/{param}/{sub-resources:.+}