Dans une requête Spring 3.0 GET, quelle est la différence entre un @PathVariable et un @RequestParam
Dans un exemple comme le suivant, quelle est la différence entre un @PathVariable
et un @RequestParam
?
@RequestMapping(value = "/portfolio/{portfolioIdPath}", method = RequestMethod.GET)
public final String portfolio(HttpServletRequest request, ModelMap model,
@PathVariable long portfolioIdPath, @RequestParam long portfolioIdRequest)
source d'informationauteur August
Vous devez vous connecter pour publier un commentaire.
@RequestParam se lie à un paramètre de la requête à un paramètre dans votre méthode. Dans votre exemple, la valeur du paramètre nommé "portfolioIdRequest" dans la demande sera transmise en tant que "portfolioIdRequest" argument de votre méthode. Un exemple plus concret - si l'URL de la requête est
alors la valeur du paramètre "portfolioIdRequest" sera "456".
Plus d'info ici: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestparam
@PathVariable de la même façon lie la valeur de l'URI de la variable de modèle "portfolioIdPath" pour le paramètre de méthode "portfolioIdPath". Par exemple, si votre URI est
alors la valeur de "portfolioIdPath" paramètre de méthode sera "123".
Plus d'info ici: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates
@RequestParam identifie le HTTP GET ou POST paramètre qui est envoyé par le client(l'utilisateur), Et @RequestMapping extraits d'un segment de l'URL qui varie en fonction de la demande à la demande:
Dans l'URL ci-dessus "var" est un requestparam.
et au-dessus URL {qui} est une demande de la cartographie. Vous pouvez appeler votre service comme :
OU comme
Dans votre application, vous pouvez accéder à la valeur de {qui} (Dans le premier cas, ce qui="utilisateur" et en deuxième, ce qui=" "ferme".
Cela dépend de la façon dont vous voulez traiter votre demande