Maîtrisez la validation de formulaires struts. Comprenez la différence entre validation coté serveur et validation coté client. Mettez en oeuvre le plugin Validator.
Ce tutoriel vous est offert par Objis, le spécialiste de la formation Objis.
Suite à nos 10 tutoriaux struts1, consolidez vos compétences struts avec notre formation struts1 meilleures pratiques qui abordera également pàs à pas les thèmes suivants : migration struts1 vers struts2 et intégration de struts avec d’autres frameworks et outils : Spring, Hibernate, TopLik, iBatis, EJB3, Web Services, velocity, XDoclet…
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Liens utiles
+ de 100 tutoriaux java/jee Objis
10 tutoriaux Struts 1 Objis
Objis, spécialiste formation java depuis 2005
Tutoriel DynaValidationForm
Prérequis
Téléchargement Eclipse Entreprise
Installation Tomcat 6
Intégration Tomcat 6 dans Eclipse wtp
Déploiement struts-blank (1.3.10) dans eclipse
FAQ struts developpez.com
Objectifs
Rappeller bonnes pratiques (démarrage projet, balises html:)
Valider un formulaire coté serveur à travers méthode validate du beanForm
Valider un formulaire coté client avec le plugin validator
Programme
Partie 1 : création projet eclipse
Partie 2 : personalisation de la page d’accueil
Partie 3 : création du formulaire de demande de formation
Partie 4 : validation coté serveur
Partie 5 : validation coté client.
Durée
1h
Partie 1 : création projet ‘demostrutsvalidation’
Une bonne pratique de développement struts est de commencer tout projet struts par le squellette d’application struts-blank livré avec Struts.Le point de départ de ce tutoriel est donc un projet ‘demostrutsvalidation’ eclipse avec tomcat intégré et struts-blank déployé.
tutoriel validation etape initiale
INFO : Le tutoriel spring1 N°2 Déploiement struts-blank dans eclipse détaille cette opération.
La page d’accueil de l’application est alors la suivante.
Partie 2 : Modification de la page d’accueil
Modifier les 3 messages de la page d’accueil, présents dans le fichier MessageRessources.properties
Vous obtenez un début de personalisation
Ajoutez nouveaux texte et images :
RAPPEL bonnes pratiques :
— mettez vos textes dans les fichiers de message et non dans les JSP en dur
— utilisez la balise struts html:base pour permettre de faire des références relatives et avoir un code portable
— utilisez la balise struts html:img au lieu de la balise img pour bénéficier de l’UrlRewriting et maintien de session
— utiliser la balise struts html:link au lieu de a href
Partie 3 : Création du formulaire de demande de formation
Dans cette partie nous allons créer le formulaire suivant :
JSP
Messages
Bean formulaire : DemandeFormationForm
Création
Dans un package com.objis.demostruts, créez la classe DemandeFormationForm héritant de la classe struts ActionForm
Codage
Ajoutez des propriété dont les noms coïncident exactement avec les nom des champs du formulaire.
Créer des methodes getters/Setters pour chaque propriétés(Eclipse Menu source->generate Getters & Seters )
REMARQUE : la méthode setAudit(« oui ») placée dans le constructeur permettra d’affecter un choix par défaut à ‘oui’ pour le bouton radio du formulaire.
Configuration dans struts-config
Action : DemandeFormationAction
Création & Codage
Configuration
Partie 4 : Validation coté serveur
Principe
Après appui sur le bouton ‘valider’, les informations du formulaire sont envoyées au serveur. Le serveur vérifie si les champs sont valides (méthode validate de l’actionForm). En cas d’erreur sur un champ, le serveur crée un objet ActionMessage, ajoute cet objet dans un objets ActionErrors, que le client JSP peut exploiter de différentes façon, la plus simple etant une ancre html:errors quelque part dans la page.
Redéfinition méthode validate de l’Action
Redéfinnissez la méthode validate() du formbean
Codez cette methode de façon à tester que l’utilisateur a bien remplit tous les champs.
balise ancre erreurs dans le jsp
Ici placée entre les 2 images
C’est là que seront affichés les messages d’erreurs, et dans un formatage définit dans le fichier de propriétés MessageResources.properties (les premières ligne non commentées):
Dans cette partie vous avez mis en oeuvre une validation coté serveur, implique un aller-retour entre le client et le serveur.
Si le client accepte Javascript, une autre forme de validation gagne à être mise en oeuvre car n’utilisant pas de bande passante : la validation coté client avec le plugin Validator.
Partie 5 : Validation coté client
Principe
A travers une validation coté client, vous générez à la volée un code html+javascript qui permet de valider les champs sans aucun Aller/Retour serveur
Méthodologie : Validation client en 5 étapes
ETAPE 1 : brancher et comprendre plugin validator
Il est déja configuré dans struts-blank de la version 1.3.x. , à travers les balises suivantes qui se trouvent tout en bas du fichier struts-config.xml :
2 fichiers de configuration y sont précisés. En particulier, lors du déploiement de struts-blank on remarque que 2 fichiers sont concernés :
— un fichier validation-rules interne à struts (dans le jar struts.jar). Ce fichier liste plusieurs classes java qui savent générer du javascript en fonction d’une règle (Ex required : champ requis).
— un fichier WEB-INFvalidation.xml initialisé dans lequel vous allez informer struts dans formulaires, champs et règles à appliquer.
ETAPE 2 : messages d’erreur
Certains sont déja prêt dans le MessageResources.properties. Vous pouvez personaliser, par exemple ici pour les champs que nous imposerons comme requis (required).
ETAPE 3 : règles de validation
Dans le fichier validation.xml ajouter les règles. Exemple : required’
ATTENTION à configurer pour le bon ‘locale’ et bien spécifier le nom du bean formulaire dans la balise html:javascript de la jsp sinon vous vous exposez à des erreurs du type :
INFO : Il pourra être necessaire d’avoir un fichier de configuration adapté à la langue (Ex : MessageResources_fr.properties). Tenez compte des messages de WARNING de Tomcat dans ce sens.
ETAPE 4 : inclusion balise html:javascript dans la jsp
Config de l’action
ETAPE 5 : evenement onsubmit du formulaire
ça y est vous avez terminé la configuration.
Aperçu projet eclipse
projet corrigé
correction tutoriel6 struts1 objis validation client serveur
Conclusion
Dans ce tutoriel, vous avez développé mis en œuvre une stratégie de validation de formulaires avec struts1.
Vous avez compris la différence entre validation coté serveur (méthode validate() du formBean ) et la validation coté client (plugin Validator) et les techniques de mise en œuvre de ces deux types de validation.
Prochaine formation STRUTS1
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Struts 1:
Pour aller plus loin : le réseau Objis
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