87 votes

Spring MVC Comment prendre la valeur du paramètre d'une requête HTTP GET dans la méthode de mon contrôleur ?

Dans cette période, j'étudie l'exemple de démonstration de Spring MVC (téléchargeable sur le tableau de bord STS) et j'ai quelques questions simples sur l'utilisation de l'outil de gestion de la qualité. Request Mapping exemples :

1) Dans mon 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 par ce lien, je fais une requête HTTP GET ayant un paramètre "foo" contenant la valeur : "bar".

Cette requête HTTP est traité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 demandes HTTP (uniquement GET ) qui ont un paramètre nommé "foo".

Comment puis-je prendre la valeur ("bar") de ce paramètre et la mettre dans une variable dans le code de ma méthode by Parameter ?

185voto

JB Nizet Points 250258

Comme expliqué dans la documentation en utilisant un @RequestParam annotation :

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}

43voto

Kevin Bowersox Points 48223

Vous pouvez également utiliser un modèle d'URI. Si vous avez structuré votre requête 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)";
}

Documentation sur le modèle d'URI de Spring

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X