Qu'est-ce exactement @RequestParam et comment fait-il peuplé?
Printemps documentation dit:
Utiliser le @RequestParam annotation pour lier les paramètres de la demande pour un
paramètre de méthode dans votre contrôleur.
Autant que je sache, les paramètres de la demande sont des variables récupérées à partir de chaînes de requête si la demande de la méthode GET. Ils sont également les variables récupérées du formulaire de valeurs lors de la demande de la méthode est POST. J'ai vérifié cela à l'aide d'un simple JSP qui affiche les paramètres de la demande par le biais de la méthode de demande.getParameter("clé").
Mais il me semble que @RequestParam ne fonctionne que sur les demandes de méthode. Il ne peut obtenir les valeurs de chaînes de requête.
Est-ce un bug dans la documentation? Quelqu'un peut-il citer moi une partie de la documentation qui décrit exactement ce que @RequestParam est utilisé, ce qu'elle ne peut pas être utilisé pour, et comment il se rempli?
Puis-je utiliser @RequestParam POST méthodes pour obtenir les valeurs d'un formulaire? Si je ne peux pas utiliser @RequestParam, quoi d'autre puis-je utiliser? Je vais essayer d'éviter l'appel de demande.getParameter("clé").
OriginalL'auteur supertonsky | 2011-12-28
Vous devez vous connecter pour publier un commentaire.
Il travaille avec des messages aussi. Vous pouvez poster votre corps de la méthode et vous html?
OriginalL'auteur Arash
Oui, il fonctionne parfaitement avec la méthode post. vous pouvez mentionner l'attribut method de
@RequestParam
commeRequestMethod=POST
. Voici l'extrait de codeOriginalL'auteur Amit
Au lieu de
@RequestParam
qui se lie à une seule forme de la valeur, vous pouvez utiliser@ModelAttribute
d'annotation et de se lier à l'ensemble de l'objet. Mais il doit être utilisé en conjonction avecform
oubind
Printemps de la JSTL.Exemple:
- contrôleur qui appelle JSP-page, il devrait ajouter des objets à un Modèle:
public String showUploadForm(Modèle) {
}
Titre De La Piste *:
Contrôleur de processus de soumission de formulaire;
@RequestMapping(valeur="/uploadToServer", method=RequestMethod.POST)
public String uploadToServer(@ModelAttribute("artiste") Artiste artiste, @ModelAttribute("track") Piste piste) { .... }
Ici, j'ai trouvé une bonne explication de l'utilisation de @ModelAttribute annotation - krams915.blogspot.ca
OriginalL'auteur user07