0

客户端可能会请求两个具有相同路径但查询字符串不同的 url:

1. /hello
2. /hello?name=Mike

如何使用 jersey 为它们各自定义两种不同的方法?

这是一个例子:

@Path("/hello") 
public class HelloResource {

    @Produces("text/plain")
    public String justHello() {}

    // how to call this method only the query string has "name"
    @Produces("text/plain")
    public String helloWithName() {}
}
4

2 回答 2

2

你不能这样做,Jersey 只匹配路径。有关完整详细信息,请参阅http://jersey.java.net/nonav/documentation/latest/jax-rs.html

您可以根据存在的查询参数构建自己的交换机。一般来说, name=mike 无论如何都不是很 RESTy。泽西岛确实支持:

 /hello/{name}

这就是它的使用方式。

于 2012-05-28T17:24:24.200 回答
0

其实你可以。您只需要将一个方法映射到 /hello/ 来检查查询参数。如果存在,则委托给另一个方法作为子资源。

http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e374

于 2012-05-29T00:00:24.250 回答