如何用不同的方法编写匹配“/ hello”和“/ hello?name = Mike”的球衣?

时间:2012-05-28 17:19:17

标签: rest jersey

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

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

如何使用平针织物为每种方法定义两种不同的方法?

以下是一个例子:

@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() {}
}

2 个答案:

答案 0 :(得分:2)

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

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

 /hello/{name}

这就是它的用法。

答案 1 :(得分:0)

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

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