有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

@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) 个答案

  1. # 1 楼答案

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

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

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

    或者,如果您想将顶层段放入一个单独的变量中,可以执行以下操作:

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