1

我正在尝试使用 JAX-RS 创建一个 API,并以多种方式获取产品。所以如果你输入例如

herp.com/products/11

你得到了 ID 11 的产品,这很好用。如果您键入:

herp.com/products/name/banana

你应该得到所有称为香蕉的产品。尽管按名称获取功能不起作用(参数内名称始终为空)。这是带有所有注释的函数。

@GET
@Path("/name/{name}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getByName(@PathParam("{name}") String name) {

    Logger.getAnonymousLogger().log(Level.INFO, "getByName, name: " + name);
    List<ProductProxy> found = new ArrayList<ProductProxy>();
    for(ProductProxy proxy : products)
        if(name.equals(proxy.getName()))
            found.add(proxy);

    return Response.ok(found).build();
}

尽管参数内始终为空。我对注释做错了吗?类注解是@Path("products")。

4

1 回答 1

0

从路径参数中删除花括号,即更改

@PathParam("{name}") String name

@PathParam("name") String name

中的大括号@Path("foo/{bar})表示您有一个名为 的路径参数bar,但不是参数名称的一部分。

于 2013-09-13T17:00:48.547 回答