SpringMVC en valeur, il y a 5 façons (cet article est reproduit),
1.Demande obtenir la valeur:
@RequestMapping ( "/ request.action" ) publique demande String (HttpServletRequest demande) { Chaîne Valeur = (String) request.getAttribute ( "valeur" ); Chaîne val = request.getParameter ( "valeur" ); retour "index" ; }
La demande getParameter et getAttribute Quelle différence est-il?
getAttribute : l' obtention d' une session de plage de valeurs de consigne valeur setAttribute peut être réglé sur l' objet, l'objet, la chaîne, la valeur getAttribute acquis conteneur Web interne, ayant une relation de routage partagée entre les valeurs de composantes de bande; des moyens pour côté serveur de redirection
getParameter : valeur get de la forme formulaire web post / get, ou passer au- dessus de l'URL, seule chaîne chaîne, la valeur getParameter obtenue est transmise au serveur Web final, et l'acquisition de données http présentées sur; pour redirection côté client.
2. Utilisez un paramètre variable de chemin de liaison chemin url page @PathVariable pour la page de saut
@Controller publique classe BaseController { @RequestMapping ( " / goUrl / {dossier} / {fichier} " ) publique Chaîne goUrl (@PathVariable dossier String, @ PathVariable fichier String) { retour dossier + " / " + fichier; } }
3. est venu par la page des paramètres de liaison @RequestParam, avec effet
Chaîne id = request.getParameter ( "id") est le même:
@RequestMapping ( "/ test.action" ) publique vide test (@RequestParam ( "id" ) id String) { System.out.println ( "id:" + id); }
4. L'injection automatique, la classe d'attributs d'entité poseur, méthodes de lecture, forme distal correspondant au nom de l'attribut de nom de forme d'une entité, directement retourner au paramètre peut être lié automatiquement par la classe d'entités de la classe d'attributs.
Par exemple: la classe d'entité
publique classe de contenu { privé de contenu String;
publique Chaîne getContent () { retour contenu; } Publique vide setContent (contenu String) { ce .content = contenu; } }
Formulaire:
<form action = "<% = request.getContextPath ()%> / content" method = "post" enctype = "multipart / form-data">
objets d' 描述: <nom de zone de texte = lignes "contenu" = "2" cols = "20"> </ textarea> <br>
<input type = "submit" value = "提交" />
</ form>
Contexte recevoir des données:
@RequestMapping ( "content /" ) publique vide contetn (contenu de contenu) { System.out.println ( "content:" + content.getContent ()); }
5. RequestBody accepter avant est venu des objets tableau JSON. ResponseBody les données renvoyées
@RequestMapping ( "/ test.action" ) @ResponseBody publique vide test (@RequestBody Liste <Contenu> Liste) { pour (Contenu: liste) { System.out.println (content.toString ()); } }