Pendant cette période, j'étudie l'exemple de démonstration Spring MVC (téléchargeable depuis le dasboard de STS) et j'ai une question simple à propos des exemples Request Mapping
:
1) Dans ma page home.jsp
, j'ai ce lien:
<li>
<a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
</li>
Comme vous pouvez le voir sur ce lien, je suis en train de faire une requête HTTP GET avec un paramètre "foo" contenant la valeur: "bar".
Cette demande HTTP est gérée par la méthode suivante de la classe de contrôleur MappingController:
@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
return "Mapped by path + method + presence of query parameter! (MappingController)";
}
Cette méthode gère les requêtes HTTP (uniquement de type GET
) ayant un paramètre nommé "foo".
Comment puis-je prendre la valeur ("barre") de ce paramètre et la mettre dans une variable dans le code de ma méthode by Parameter?
Comme expliqué dans la documentation , en utilisant une annotation @RequestParam
:
public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
+ foo;
}
Vous pouvez également utiliser un modèle d'URI. Si vous avez structuré votre demande en une URL reposante, Spring pourrait analyser la valeur fournie à partir de l'URL.
HTML
<li>
<a id="byParameter"
class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
presence of parameter</a>
</li>
Contrôleur
@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET)
public @ResponseBody String byParameter(@PathVariable String foo) {
//Perform logic with foo
return "Mapped by path + method + presence of query parameter! (MappingController)";
}