Пример JAX-RS @QueryParam

В JAX-RS вы можете использовать аннотацию @ QueryParam для внедрения параметра запроса URI в метод Java. например,

…​./users/query?url=mkyong.com

В приведенном выше шаблоне URI параметром запроса является «**  url = mkyong.com ** », и вы можете получить значение URL с помощью `@QueryParam (" url ")`.

===  1. Пример @QueryParam

Смотрите полный пример использования `@ QueryParam` в JAX-RS.

import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response;

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

}

Шаблон URI: «**  users/query? From = 100

getUsers is called, from : 100, to : 200, orderBy[age, name]…​.

2. Программный параметр запроса

В качестве альтернативы вы можете получить параметры запроса грамматически, через «@Context UriInfo». Смотрите эквивалентную версию ниже:

import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;

@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();

    }

}

Шаблон URI: «** users/query? From = 100

getUsers is called, from : 100, to : 200, orderBy[age, name]....

===  3. Пример @DefaultValue

`@ DefaultValue` подходит для необязательного параметра.

import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response;

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

}

Шаблон URI: «**  users/query ** »

getUsers is called, from : 1000, to : 999, orderBy[name]…​.

Скачать исходный код

Загрузите его - ссылка://wp-content/uploads/2011/07/JAX-RS-QueryParam-Example.zip[JAX-RS-QueryParam-Example.zip](6 КБ)

Рекомендации

@DefaultValue JavaDoc]

ссылка://тег/jax-rs/[jax-rs]ссылка://тег/параметр/[параметр]ссылка://тег/Resteasy/[Resteasy]