1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 

Struts - Un framework MVC pour vos applications J2EE

5.3.DynaForms

On a vu jusque maintenant comment lier les champs de nos formulaires, mais à aucun moment la définition de la classe Form Bean correspondante.
En effet, si l’on utilise Struts, il faut nécessairement lier chaque formulaire à un bean ; c’est-à-dire à une classe Java respectant certaines règles :
  • un attribut pour chaque propriété du formulaire avec le même nom
  • un getter et un setter pour chaque attribut du bean
Par ailleurs cette classe doit étendre ActionForm. La classe ActionForm possède en effet une méthode validate() qui va justement permettre de définir le code validant ou non les champs du formulaire.
Si l’on suit cette indication, notre classe InscripForm est définie comme suit :

Cette classe contient des attributs correspondants aux propriétés de notre formulaire InscripForm ainsi que des getters et des setters pour chacun d’eux. Elle surdéfinit par ailleurs la méthode validate() de la classe ActionForm afin de faire les validations des différents champs du formulaire.
Rappelons que client.form.require.nom fait référence à la clé se trouvant dans le fichier de properties(cf.3.6.1) qu’on aura défini en amont. Le lien avec ce fichier se fait dans le fichier de configuration struts-config.xml à l’aide de la balise <message-resources> (cf.3.8.1).
Après avoir créé notre Form Bean, revoyons le fichier struts-config.xml :

Le fait est que, si nous avons choisi d’utiliser le framework Validator, c’est justement dans le but d’éviter d’écrire les codes de validations pour chaque formulaire puisqu’ils risquent d’être redondants. C’est pourquoi un ensemble de validations standards sont regroupés dans le fichier struts.jar. De plus, c’est pour cela que nous avons regroupé toutes les définitions des validations de champs dans le fichier validation.xml.
Ce que l’on veut, c’est se servir de ces définitions et les mapper à notre Form Bean.
Nous allons donc étendre la classe ValidatorForm, sous-classe de la classe ActionForm. Cette classe est incluse dans le framework Validator (on pourra le trouver dans le fichier struts.jar, dans le package org.apache.struts.validator).Voyons la nouvelle classe InscripForm :

Sa définition dans le fichier struts-config.xml ne change pas :

Simplement, les validations des champs vont se faire par rapport au fichier validation.xml. Le nom défini dans l’attribut name est l’identifiant qui permettra, de lier les champs du formulaire InscripForm aux validators requis.
Nous avons déjà gagné un temps non négligeable, puisque pour chaque formulaire, il nous suffit de créer un Form Bean contenant des attributs ainsi que leurs accesseurs. Mais nous allons encore simplifier la chose. En effet, chaque fois redéfinir toutes ces méthodes pour chaque champ est assez fastidieux.
Pour cela, nous n’allons plus créer de Form Bean pour chaque formulaire mais utiliser les DynaForms, c’est-à-dire définir nos balises <form bean>de la manière suivante :

Avec cette nouvelle définition, Struts va s’occuper lui-même de créer le Form Bean. Nous ne devons que spécifier les propriétés du formulaire ainsi que leurs types.
On a donc deux propriétés à valider pour ce formulaire inscripForm, de types String et initialisées à vide.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Essentiels de cours Java
JavaEJB 3 - Les Entreprise Java Bean version 3 (JavaBeans)
Cet essentiel est la suite de « Entreprise JavaBean 2.1 ». Cependant, nous allons étudier les nouvelles spécifications 3.0 qui simplifient énormément le développement par rapport aux EJB 2.6/20/06
JavaSWT - Créer des interfaces graphiques performantes
SWT (Standard Widget Toolkit) est une librairie graphique qui vous permet de réaliser des applications graphiques Java beaucoup plus avancées et surtout plus rapide à l’exécution.1/29/06
JavaStruts - Un framework MVC pour vos applications J2EE
Struts est un framework open-source qui vous permet de gagner du temps, mais qui permet aussi de voir des applications complexes comme une suite de composants de base : Vues, Actions, Modèles. Vous gagnez ainsi en évolutivité et en lisibilité du code.1/13/06
JavaHibernate - Persistance objet - relationnel
Cet essentiel explique comment utiliser Hibernate afin de gérer la persistance objet relationnel au sein de vos applications Java.12/14/05
JavaIntroduction J2EE - Applications d'entreprise
Cours d'introduction aux diverses technologies et outils que l'on peut rencontrer dans le monde du Java orienté entreprise J2EE12/14/05
JavaEJB 2 - Les Entreprise Java Bean (JavaBeans)
L'objectif avec EJB2 (Entreprise JavaBeans) est d'introduire les concepts de l’Ingénierie Logicielle Basée sur les Composants.12/14/05
JavaDesign Patern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design partern" apportent une solution type à beaucoup de contraintes liées à la programmation objet.12/14/05
JavaArchitecture J2EE - Comment organiser son application J2EE
Ce cours explique comment créer un code modulable, lisible et évolutif afin d'assurer la pérénité de son application.12/14/05
JavaLes web-services - Publication de services
Le développement tend vers les technologies du Web. Il est difficile de faire la distinction entre les différents logiciels qui sont de plus en plus intégrés au Web. Les Web Services rentrent dans l’optique de différencier bien précisément les couches.12/14/05
JavaAnt - L'automatisation des tâches du programmeur
Ecrire des scripts afin d'exécuter les tâches récurrentes10/31/05
JavaIntroduction au langage Java - Présentation & historique
Présentation des origines du langage, ainsi que se buts premiers8/11/05
JavaLa Syntaxe Java - Bases & nomenclatures
Bases de la syntaxe du langage Java8/11/05
JavaLes Classes - Concepts & héritage
Base du développement objet en Java grâce aux classes8/11/05
JavaLes Exceptions - Gestion d'erreurs
Gérer les erreurs liés à la programmation8/11/05

Articles
Eclipse Europa : le successeur de Callisto
Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassu12/21/07
JavaCruiseControl : l’outil d’intégration continue à avoir dans sa boite à outils
CruiseControl est un projet open-source offrant de multiples fonctionnalités pour l’intégration, que ce soit pour des développements Java ou .Net. Il est courant sur un projet d’être plusieurs développeurs avec des tâches de développement réparties. Dans7/2/07
JavaEJB3 - Des concepts à l'écriture du code - Editions DUNOD
Consulter le résumé du premier ouvrage du laboratoire Sun de SUPINFO : EJB3 - Des concepts à l'écriture du code. Guide du développeur, éditions DUNOD.5/27/07
JavaPassage de certification Java Web (SCWCD)
Passer une certification est toujours un moment important car cela permet de mieux faire reconnaître ses compétences face à un recruteur ou un employeur.5/12/07
JavaGoogle Web Toolkit
Google Web Toolkit est un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Voilà comment il fonctionne.5/10/07
JavaJ2ME Vs SDE
Demain, les terminaux « légers » seront plus nombreux que les ordinateurs personnels, ce qui entraîne une bataille sur le choix d’une plateforme identique à tous ces terminaux… Aujourd’hui nous retrouvons le J2ME ainsi que le SDE qui s’offrent une rude b4/22/07

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée