Exemples de traitement de formulaire Spring MVC L'exemple suivant illustre comment rédiger une application Web simple qui utilise des formulaires HTML à l'aide du framework Web MVC de Spring.
Une construction de projets de test
(1) Créez un nouveau projet Web Java et introduisez plusieurs packages JAR requis pour les projets SpringMVC. La structure du projet et les packages de bocaux requis sont les suivants:
①web.xml:
<web -pp xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version = "3.1"> <servlet> <Serplet-Name> Springmvc </ Serverfler> <Servlet-Class> org.springframework.web.servlet.dispatcherServlet </vrlet-Class> <Choot-on-startup> 1 </ loadt-on-startup> </ servlet> <Serplet-Mapping> <Serplet-Mapping> <Serplet-Name> Springmvc </servlet-name> <Url-Pattern> *. HTML <filter> <filter-name> CaracterEncodingFilter </ Filter-Name> <Lilter-Class> org.springframework.web.filter.characterencodingfilter </filter-class> <itolin-param> <param-name> Encoding </ param-name> </ param-valu> utf-8 </ons param-onduue> <Lifter-Mapping> <Filter-Name> CaracterEncodingFilter </ Filter-Name> <URL-Pattern> / * </url-Pattern> </ Filter-Mapping> </low-App>
Voici un suffixe d'URL interceptant SpringMVC se terminant par .html et le traitement
②springmvc-servlet.xml:
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalation = "http://www.springframework.org/schea/bans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsddd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <context: composant-scan basage" <! - Activez l'annotation définie dans le bean -> <mvc: annotation-driven /> <ean> <propriété name = "prefix" value = "/ web-inf / pages /" /> <propriété name = "suffix" value = ". Jsp" /> </ bean> </ beans>
Dans le fichier de configuration ci-dessus, <Context: Annotation-Config /> active certaines annotations définies dans le bean, tandis que <mvc: annotation-driven /> active certaines configurations par défaut pour SpringMvc. À la fin du fichier de configuration, la correspondance entre la vue logique et la vue réelle est définie. En un mot, le préfixe de chemin et le suffixe définis ci-dessus sont donnés à la vue logique retournée. C'est le vrai chemin vers la vue réelle.
2. Utilisez SpringMVC pour traiter les formulaires de formulaires
(1) Avant de commencer officiellement, créez un modèle de modèle et d'énumération:
① Utilisateur de l'entité:
package cn.zifangsky.model; import java.time.localate; import org.springframework.format.annotation.datetimeFormat; public de classe publique {nom de chaîne privé; mot de passe de chaîne privé; travail de chaîne privée; @DateTimeFormat (pattern = "Yyyy-mm-dd") Private LocalDate Birthdate; genre privé de genre; pays de cordes privées; fumer booléen privé; public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getPassword () {return mot de passe; } public void setPassword (String Motword) {this.password = mot de passe; } public String getJob () {return travail; } public void setJob (String Job) {this.job = job; } public localdate getBirthDate () {return naissance; } public void SetBirthDate (LocalDate Birthdate) {this.birthDate = Birthdate; } public Gender getgender () {return Gender; } public void setgender (genre de genre) {this.gender = genre; } public String getcountry () {return country; } public void SetCountry (String Country) {this.Country = country; } public boolean issmoking () {retour fumer; } Public Void setsmoking (boolean fumer) {this.smoking = fumer; }} ② Gender de classe d'énumération qui représente le "genre":
package cn.zifangsky.model; Sexie publique du genre {homme, femme;} Les éléments suivants expliquent brièvement le traitement de formulaire de formulaire de SpringMVC en fonction du processus d'exécution du programme, à savoir le remplissage de formulaire de premier plan> Traitement du contrôleur> Page de résultat de traitement
(2) La page d'accueil et le formulaire du formulaire du projet de test:
①Home Page Index.jsp:
<% réponse.sendRedirect ("form.html"); %>On peut voir que notre page d'accueil ici est très simple, qui est de rediriger vers "form.html", mais via notre configuration précédente dans web.xml, SpringMVC transférera cette demande à un contrôleur spécifique pour le traitement, bien sûr, il se trouve directement à la page de formulaire. La logique de traitement spécifique dans le contrôleur sera discutée ci-dessous
②form Form Form Page userform.jsp:
<% @ page Language = "Java" contentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <% @ Taglib uri = "http://www.springframework.org/tags/form" http-equiv = "contenu-type" content = "text / html; charset = utf-8"> <tight> Spring MVC Form Handling </ title> </ head> <body> <h2> Enregistrement de l'utilisateur </h2> <mvc: formulaire modelAttribute = "User" Action = "Result.html"> <per> <tr> <TD> path = "name"> name: </ mvc: étiquette> </ td> <td> <mvc: entrée path = "name" /> </td> </tr> <tr> <td> <mvc: label path = "mot de passe: mot de passe: </ mvc: label> </ td> <td> <mvc: mot de passe) path =" mot de passe "/> </cD> <td> <mvc: label path = "job"> work: </ mvc: label> </td> <td> <mvc: textarea path = "job" /> </td> </tr> <tr> <td> <mvc: label path = "naissance"> anniversaire: </mvc: label> </td> <td> <mv: 'naissance = "BravecDate" /></td> </tr> <tr> <td><mvc:label path="gender">Gender:</mvc:label></td> <td><mvc:radiobuttons path="gender" items="${genders}" /></td> </tr> <tr> <td><mvc:label path = "country"> résidence: </ mvc: label> </td> <td> <mvc: select path = "country" items = "$ {Pays}" /> </td> </tr> <tr> <td> <mvc: label path = "fumer"> fumez-vous? </tr> <tr> <td ColSpan = "2"> <Type de saisie = "soumission" value = "soumis" /> </td> </tr> </tr> </ table> </ mvc: form> </ body> </html> Étant donné que nous mettons cette page dans le répertoire Web-Inf, nous ne pouvons pas accéder à ce fichier directement via l'URL. Le "form.html" défini ci-dessus doit être transféré au contrôleur pour le traitement et affiché cette page de vue. Le but de cela est d'empêcher que certaines pages privées soient accessibles par d'autres sans autorisation. Dans le fichier ci-dessus, il est important de noter:
(3) Contrôleur Classe UserController.java pour le traitement de la logique métier:
Package CN.Zifangsky.Controller; import org.springframework.sterreotype.Controller; import org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.RequestMapping; Import org.springsky.web.servert; cn.zifangsky.model.user; @ControllerPublic classe UserController {chaîne finale statique privée [] pays = {"Chine", "Japon", "Corée du Nord", "États-Unis"}; @RequestMapping (value = "/ form.html") public ModelAndView User () {ModelandView ModelAndView = new ModelAndView ("userForm"); ModelAndView.AddObject ("User", New User ()); ModelAndView.AddObject ("Genders", Gender.Values ()); ModelandView.AddObject ("Pays", Pays); return ModelAndView; } @RequestMapping (value = "/ result.html") public ModelAndView ProcessUser (@ModelAtTribute (value = "user") User u) {ModelandView ModelAndView = new ModelAndView ("userResult"); ModelAndView.AddObject ("u", u); return ModelAndView; }} On peut voir que deux méthodes sont définies ci-dessus, et leurs fonctions sont de transférer au formulaire réel pour la demande "Form.html" et de gérer le formulaire de formulaire. Lors du traitement du formulaire, j'ai reçu un type d'utilisateur "u" via l'annotation @ModeLatTribute, qui est le formulaire rempli d'abord, et ce qui suit est l'affichage du formulaire, donc je ne dirai pas grand-chose
(4) Test:
Film sous la forme:
②Les résultats montrent:
Page userresult.jsp:
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <% @ Taglib Uri = "http://www.springframework.org/tags/form" HTML 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "Content-Type" Content = "Text / html; <h2> Enregistrer les résultats </h2> <s tablel> <ttr> <td> Nom: </td> <td> $ {U.Name} </td> </tr> <tr> <td> mot de passe: </td> <td> $ {U.Password} </td> </r> <td> Work: </td> <td> {U.Job} <td> </tr> <tr> <td> anniversaire: </td> <td> $ {u.birthdate} </td> </tr> <tr> <td> sexe: </td> <td> $ {U.Gender} </td> </ tr> <tr> <td> résidence: </td> <td> $ {U.Countornw <Td> Fumer: </td> <td> $ {U.Smoking} </td> </tr> </tr> </pable> </ody> </html>Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.