泽西路径param注射

时间:2016-03-16 19:19:41

标签: jersey

目前的Jeresy doc(https://jersey.java.net/documentation/latest/jaxrs-resources.html)显示了这个例子。

@Path("{id:\\d+}")
public class InjectedResource {
    // Injection onto field
    @DefaultValue("q") @QueryParam("p")
    private String p;

    // Injection onto constructor parameter
    public InjectedResource(@PathParam("id") int id) { ... }

    // Injection onto resource method parameter
    @GET
    public String get(@Context UriInfo ui) { ... }

    // Injection onto sub-resource resource method parameter
    @Path("sub-id")
    @GET
    public String get(@PathParam("sub-id") String id) { ... }

    // Injection onto sub-resource locator method parameter
    @Path("sub-id")
    public SubResource getSubResource(@PathParam("sub-id") String id) { ... }

    // Injection using bean setter method
    @HeaderParam("X-header")
    public void setHeader(String header) { ... }
}

我不明白这种特殊注射是如何起作用的:

// Injection onto sub-resource resource method parameter
        @Path("sub-id")
        @GET
        public String get(@PathParam("sub-id") String id) { ... }

sub-id的值来自哪里?我已经实现了这段代码并尝试了以下内容:

这导致id param为null

curl localhost:9090/JerseySample/1234/sub-id 

这导致404

curl localhost:9090/JerseySample/1234/sub-id/1234

这是一个拼写错误,看起来像这样吗?

  // Injection onto sub-resource resource method parameter
            @Path("{sub-id}")
            @GET
            public String get(@PathParam("sub-id") String id) { ... }

0 个答案:

没有答案