Après le tutoriel d’introduction à Spring MVC, découvrez pas à pas comment créer des formulaires avec Spring MVC. Comprenez la valeur ajoutée de la balise ’form’ de Spring. Mettez en œuvre la validation des données.
Ce tutoriel est un extrait de séances pratiques de la formation SPRING dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
+ de 100 tutoriaux java/jee Objis
10 tutoriaux spring framework objis
Objis, spécialiste formation java depuis 2005
Site officiel Spring IDE
Site officiel Spring Source Tool Suite (STS)
JDK 6
Eclipse 3.3.2 europa Entreprise
Spring 2.5.4
Spring IDE 2.1.0
Tutoriel Spring N°2 : injection de dépendances
Tutoriel Spring N°8 : introduction Spring MVC
Pour ce Tutoriel, le plugin Eclipse Spring IDE doit être au préalable correctement installé. Le tutoriel ’Installation plugin Spring IDE’ vous permet de maîtriser l’installation de Spring IDE.

Comprendre la stratégie de création de formulaires Spring MVC
Internationalisation des messages texte (I18N)
Comprendre la validation de formulaire avec la classe Validator
Créer des écrans avec Spring MVC et le framework Tiles
Partie 1 : Création d’un formulaire en 6 étapes
Partie 2 : Validation des champs du formulaire
Partie 3 : Formulaires et Annotations Spring 2.5
Partie 3 : Validation formulaire avec le bean validation Framework (BVF)
1h.
Cette partie est la suite du Tutoriel Spring N°8 : introduction Spring MVC . Dans cette partie, vous allez créer et gérer pas à pas un formulaire Spring MVC simple.
Le projet Eclipse est le suivant :

ETAPE 1 : Ecran d’authentification (JSP)
Dans le répertoire WEB-INF/jsp, codez la page d’authentification : login.jsp.

REMARQUE : Notez que que le nom des champs texte (login, password) correspond exactement aux propriétés login , password de l’objet métier (ici Employe). Une opération de binding sera réalisé lors de la validation du formulaire.
ETAPE 2 : Code du controlleur de l’écran d’authenfification
RAPPEL : Chaque controlleur Spring MVC a pour rôle de retourner au DispatcherServlet un objet de type ModelAndView contenant à la fois la vue à afficher et les informations qui seront utilisée dans la vue.
INFO : Chaque écran de formulaire Spring est associé à un controlleur de type SimpleFormControleur. Ici :
— le controleur va utiliser le service EmployeManager pour rechercher l’utilisateur dont le login correspond au login composé sur l’écran.
— Le ’Model’ représente l’objet Employe chargé avec toutes ses propriétés issues de la base de données
— La ’View’ représente la page d’accueil

Dans le code ci-dessus :
Mettez en evidence l’injection du service EmployeManager dans le controleur
Mettez en evidence le mécanisme de binding entre les champs de formulaire et un objet Employe. Quel Design Pattern est utilisé ?
Analysez le code de récupération d’informations en base de données. - Que manque t’il dans ce code ?
ETAPE 3 : gestion UrlMapping
Remarquez ci-dessus la prédominance du SimpleUrlMapping (order=0) : tout url /login.htm sera redirigé par le DispatcherServlet vers notre controlleur.
ETAPE 4 : déclaration du bean Controlleur
Déclarez le bean controlleur dans objisapp-servlet.xml

REMARQUE : Notez l’injection du service dans le controlleur
REMARQUE : formView représente un nom logique d’une vue à afficher lorsque le controlleur reçoit un GET http, ou en cas d’erreur rencontrée. Ici c’est la vue ’login’ (/WEB-INF/jsp/login.jsp)
Lorsque la soumission du formulaire est autorisée, (en cas de ’succes’), la vue logique successView sera renvoyée à l’utilisateur. Ici la vue ’accueil’ : pour un viewResolver de type ’InternalRessourceView’, cela correspond à la /WEB-INF/jsp/accueil.jsp
Etape 5 : Page d’acceuil
Ici la page d’accueil affiche le Nom et prénom de l’employé.

Etape 6 : Test
Testez : http://localhost:8080/demospringmvc/login.htm

Entrez un login valide. L’écran d’accueil apparaît :

TELECHARGEZ la CORRECTION de cette partie.
Vous avez mis en oeuvre Spring MVC.
Nous allons valider champs du formulaire via Spring Validator
2 étapes :
ETAPE 1 : Coder la classe de validation
Une classe de validation implémente l’interface Validator , comprenant 2 méthodes : supports() et validate().
— Créez un package com.objis.springmvcdemo.validator
— Dans ce packagez, codez la classe EmployeValidator.
Utilisez l’assistant de création de classes d’Eclipse, en précisant que la classe implémente l’intercace Validator. Eclipse créera pour vous le squelette de la classe avec méthodes de l’interface codées, et à compléter

REMARQUE : le message ’required.login’ est récupéré d’un fichier de propriété (Ex : errors.properties). Si ce message n’est pas trouvé, alors Spring affiche ’Et le champ login alors ?’
ETAPE 2 : Mise à jour configuration du controlleur
Ajoutez une nouvelle propriété ’validator’ dans la déclaration du bean Controlleur associé au formulaire.

Testez :

Désormais, si le champ login n’est pas rempli, ou s’il est rempli avec des espaces, alors le formulaire n’est pas soumis , et Spring propose à nouveau de remplir le formulaire. De plus le message d’erreur spécifié dans le validator apparaît.

Si le champ login est rempli, alors la méthode OnSubmit du controlleur sera appélée. La page d’accueil s’affiche à nouveau.

REMARQUE : En utilisant des formulaire HTML pur pour la création de formulaire, un problème se pose. Si une erreur arrive après la soumission du formulaire, Spring vous propose à nouveau de remplir le formulaire, mais il ne dispose plus des informations chargées dans l’objet command. Vous devez ’tout retaper’ . Il s’agit d’un binding dans un seul sens : formulaire vers objet command.
C’est pour gérer ce pb que Spring a créé sa propre bibliothèque de balise <
Dans ce nouveau formulaire, nous utilisons 3 tags de la bibliothèque de tags formulaire de Spring.
— form:form : déclaration d’un formulaire Spring . Notez l’objet command
— form:input : champ texte
— form:password : champ password
La valeur ajoutée de ce formulaire, comparativement au formulaire HTML, est que le Binding formulaire / objet Command est bidirectionnel. De plus vous mettez en évidence les messages associés à l’erreur.

Conclusion : vous pouvez avoir le contrôle complet de la validation métiers complexes en utilisant le Validator. L’utilisation de fichiers de propriétés permettra d’externaliser les messages.
Suite à l’utilisation des annotations dans le tutoriel 8, précisez 3 annotations utiles facilitant le développement de controlleurs Spring MVC.





Proposez un code plus adéquat du controleur du formulaire, exploitant l’injection de la vue au lieu d’envoyer ’en dur’ la vue ’merci’.

Dans ce tutoriel, nous avons mis en œuvre un formulaire Spring MVC.
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Spring :
Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
Votez pour les prochains tutoriaux à publier
Préparez vos entretiens techniques
Valorisez votre profil / expertise
Identifiez des opportunités d’emploi
Recevez la newsletter objis.com