來源:http://jackyrong./blog/1128364
1 先來看@queryparam 先看例子:
Java代碼
- Path("/users")
- public class UserService {
-
- @GET
- @Path("/query")
- public Response getUsers(
- @QueryParam("from") int from,
- @QueryParam("to") int to,
- @QueryParam("orderBy") List<String> orderBy) {
-
- return Response
- .status(200)
- .entity("getUsers is called, from : " + from + ", to : " + to
- + ", orderBy" + orderBy.toString()).build();
-
- }
-
- }
URL輸入為:users/query?from=100&to=200&orderBy=age&orderBy=name 此時(shí),輸出為: getUsers is called, from : 100, to : 200, orderBy[age, name] 要注意的是,跟@pathparam不同,@queryparam 中,指定的是URL中的參數(shù)是以鍵值對的形式出現(xiàn)的,而在程序中 @QueryParam("from") int from則讀出URL中from的值, 而@pathparem中,URL中只出現(xiàn)參數(shù)的值,不出現(xiàn)鍵值對,比如: “/users/2011/06/30”
則:
Java代碼
- @GET
- @Path("{year}/{month}/{day}")
- public Response getUserHistory(
- @PathParam("year") int year,
- @PathParam("month") int month,
- @PathParam("day") int day) {
-
- String date = year + "/" + month + "/" + day;
-
- return Response.status(200)
- .entity("getUserHistory is called, year/month/day : " + date)
- .build();
-
- }
輸出為: getUserHistory is called, year/month/day : 2011/6/30
2 以動態(tài)的方式獲得:
Java代碼
- @Path("/users")
- public class UserService {
-
- @GET
- @Path("/query")
- public Response getUsers(@Context UriInfo info) {
-
- String from = info.getQueryParameters().getFirst("from");
- String to = info.getQueryParameters().getFirst("to");
- List<String> orderBy = info.getQueryParameters().get("orderBy");
-
- return Response
- .status(200)
- .entity("getUsers is called, from : " + from + ", to : " + to
- + ", orderBy" + orderBy.toString()).build();
-
- }
-
URL;users/query?from=100&to=200&orderBy=age&orderBy=name 輸出為: getUsers is called, from : 100, to : 200, orderBy[age, name] 注意這里把orderby后的兩個(gè)參數(shù)讀入為LIST處理了.
3 @DefaultValue,默認(rèn)值
例子:
Java代碼
- @Path("/users")
- public class UserService {
-
- @GET
- @Path("/query")
- public Response getUsers(
- @DefaultValue("1000") @QueryParam("from") int from,
- @DefaultValue("999")@QueryParam("to") int to,
- @DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) {
-
- return Response
- .status(200)
- .entity("getUsers is called, from : " + from + ", to : " + to
- + ", orderBy" + orderBy.toString()).build();
-
- }
URL:users/query 輸出:getUsers is called, from : 1000, to : 999, orderBy[name]
|