vers l'accueil formulaire de contact

Tutoriel struts1 N°6 : validation de formulaire struts

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é.

Zip - 1.5 Mo
tutoriel validation etape initiale
Bonne pratique : démarrez à partir de struts-blank.

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-INF\validation.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é

Zip - 1.5 Mo
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