В 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 КБ)
Рекомендации
@QueryParam JavaDoc], http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/core/Context.html [JAX-RS
@Context JavaDoc], http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/core/UriInfo.html [JAX-RS
UriInfo JavaDoc], http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/DefaultValue.html [JAX-RS
@DefaultValue JavaDoc]
ссылка://тег/jax-rs/[jax-rs]ссылка://тег/параметр/[параметр]ссылка://тег/Resteasy/[Resteasy]