Dans JAX-RS, vous pouvez utiliser l’annotation
@ QueryParam
pour injecter un paramètre de requête URI dans une méthode Java. par exemple,
…./users/query?url=mkyong.com
Dans le modèle d'URI ci-dessus, le paramètre de requête est «** url = mkyong.com ** » et vous pouvez obtenir la valeur de l'url avec `@QueryParam (" url ")`.
=== 1. Exemple avec @QueryParam
Voir un exemple complet d'utilisation de `@ QueryParam` dans 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();
}
}
Modèle d'URI: “** utilisateurs/requête? À partir de = 100
getUsers is called, from : 100, to : 200, orderBy[age, name]….
2. Paramètre de requête programmatique
Alternativement, vous pouvez obtenir les paramètres de la requête de manière grammaticale, via «` @Context UriInfo` ». Voir la version équivalente ci-dessous:
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();
}
}
Modèle d’URI: " utilisateurs/requête? De = 100 & à = 200 & orderBy = age & orderBy = name "
getUsers is called, from : 100, to : 200, orderBy[age, name].... === 3. Exemple de @DefaultValue `@ DefaultValue` est bon pour le paramètre optionnel.
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();
}
}
Modèle d'URI: “** utilisateurs/requête ** ”
getUsers is called, from : 1000, to : 999, orderBy[name]….
Télécharger le code source
Téléchargez-le - lien://wp-content/uploads/2011/07/JAX-RS-QueryParam-Example.zip[JAX-RS-QueryParam-Example.zip](6 Ko)
Références
@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]
lien://tag/jax-rs/[jax-rs]lien://tag/paramètre/[paramètre]lien://tag/resteasy/[resteasy]