Jersey:将多个路径参数合并为一个

Jersey: combine multiple path params into one

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

@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} 及其后的所有内容,但它不起作用。

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

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

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

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

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