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

4.4.Fichier de configuration

Le fichier de configuration, comme pour Struts, est le point central de gestion de Tiles dans votre application. C’est dans ce fichier que vous devrez définir l’ensemble des définitions de votre application. Voici une description de l’ensemble des balises pouvant êtres contenus dans ce fichier. Comme pour tout fichier xml bien formé, il suffit de se baser sur la DTD pour connaître l’ensemble de la structure à appliquer à notre fichier xml. Voici le lien vers la DTD du fichier de configuration des Tiles : http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd.

4.4.1.Balise racine

La première balise rencontrée est la balise « parente ». En effet, c’est elle qui va contenir l’ensemble des balises enfantes de configuration des Tiles.
<!ELEMENT tiles-definitions (definition+)>

Cette balise ne peut contenir que des balises de type : definition. Elle ne sert qu’à regrouper l’ensemble des définitions.

4.4.2.Balise definition

C’est la balise la plus important. En effet, elle permet de définir une définition de tile, c’est-à-dire une structure de page pouvant être inséré dans une page ou directement utilisée en tant que forward dans la configuration Struts. Cette balise contient bien plus d’attribut que la précédente car elle permet de gérer l’ensemble des cas de structure d’une page (layout ou contenu de page). Voici la partie de DTD correspondante :

<!ELEMENT definition (icon?, display-name?, description?, put*, putList*)>
<!ATTLIST definition id ID #IMPLIED>
<!ATTLIST definition controllerClass %ClassName; #IMPLIED>
<!ATTLIST definition controllerUrl %RequestPath; #IMPLIED>
<!ATTLIST definition extends %DefinitionName; #IMPLIED>
<!ATTLIST definition name %DefinitionName; #REQUIRED>
<!ATTLIST definition page %RequestPath; #IMPLIED>
<!ATTLIST definition path %RequestPath; #IMPLIED>
<!ATTLIST definition role CDATA #IMPLIED>
<!ATTLIST definition template %RequestPath; #IMPLIED>
  • controllerClass : le nom complet de la classe spécifique à utiliser en tant que contrôleur (si on ne souhaite pas utiliser celle par défaut)
  • extends : utiliser pour faire dériver la définition en cours d’une définition mère (cela permet de surdéfinir les valeurs des attributs de la définition mère)
  • name : nom unique de la définition
  • path (ou page) : définit la page à utiliser pour la structure de cette tile (layout). La ressource est alors chargée (ou incluse en cas de page jsp)
  • role : définit un role pour la gestion de la sécurité (définition du type d’acc§s à la définition)
  • template : même chose que path. Utilisé pour la compatibilité avec la librairie : Template
Une définition peut également contenir des balises put et putList qui permette de définir des attributs (put) et des listes (putList).

4.4.3.Balise put

La balise put permet de définir un attribut (clé => valeur) dans une définition.
Voici la DTD correspondate :
<!ELEMENT put (#PCDATA)>
<!ATTLIST put id ID #IMPLIED>
<!ATTLIST put content CDATA #IMPLIED>
<!ATTLIST put direct %Boolean; #IMPLIED>
<!ATTLIST put name CDATA #REQUIRED>
<!ATTLIST put type %ContentType; #IMPLIED>
<!ATTLIST put value CDATA #IMPLIED>
  • name : l’identifiant unique pour l’attribut (la clé)
  • type : définit le type de la valeur (string, page, template, definition)
  • direct : même chose que : type="string" (compatibilité avec Template)
  • value (ou content) : la valeur associé à la clé (définit avec l’attribut name)
  • content : même chose que value (compatiblité avec Template)

4.4.4.Balise putList

La balise putList permet de définir une liste dans une définition.
Voici la DTD correspondante :
<!ELEMENT putList ( (add* | item* | bean* | putList*)+) >
<!ATTLIST putList id ID #IMPLIED>
<!ATTLIST putList name CDATA #REQUIRED>
Le seul attribut est le nom de la liste (name). Cependant la liste peut contenir différents éléments :
  • add : même chose qu’un élément put
  • item : élément spécifique de la liste (cf. ci-dessous)
  • bean : élément de type JavaBean (cf. ci-dessous)
  • putList : autre liste

4.4.5.Balise item

La balise item est utilisée pour définir un élément dans une liste. Cet élément peut contenir différentes propriétés (valeur, icône, lien, message d’information).
Voici la partie DTD correspondante :
<!ELEMENT item (#PCDATA)>
<!ATTLIST item id ID #IMPLIED>
<!ATTLIST item classtype %ClassName; #IMPLIED>
<!ATTLIST item icon CDATA #IMPLIED>
<!ATTLIST item link CDATA #REQUIRED>
<!ATTLIST item tooltip CDATA #IMPLIED>
<!ATTLIST item value CDATA #REQUIRED>
  • classtype : nom complet de la classe à utiliser (par défaut : org.apache.struts.tiles.beans.MenuItem)
  • icon : valeur de la propriété icon
  • link : valeur de la propriété link
  • tooltip : valeur de la propriété tooltip
  • value : valeur de la propriété value

4.4.6.Balise bean

La balise bean permet de définir un élément de type : JavaBean dans une liste. Cela permet de personnalité l’ensemble des propriétés disponibles. Chacune de ses propriétés étant initialisée via une balise : set-property (description ci-dessous).
Voici la partie de DTD correspondante :

<!ELEMENT bean (set-property*)>
<!ATTLIST bean id ID #IMPLIED>
<!ATTLIST bean classtype %ClassName; #REQUIRED>

Vous pouvez remarquer que l’attribut principal est : classtype qui permet de définir le nom complet de la classe à utiliser pour le JavaBean.

4.4.7.Balise set-property

La balise set-property se retrouve très souvent dans les fichiers de configuration (cf. balise Datasource fichier de configuration Struts). Elle permet d’initialiser une propriété d’un Bean en indiquant le nom de celle-ci et la valeur associée.
Voici la DTD correspondante :
<!ELEMENT set-property EMPTY>
<!ATTLIST set-property id ID #IMPLIED>
<!ATTLIST set-property property %PropName; #REQUIRED>
<!ATTLIST set-property value CDATA #REQUIRED>
  • property : désigne le nom de propriété à initialiser
  • value : désigne la valeur à associer à la propriété

Voici la majorité des balises / attributs utilisés dans le développement avec le plugin Tiles.
Vous pouvez remarquer qu’il n’y a aucun moyen de différencier vos templates (ou layout) de vos pages réellement utilisables. En effet Tiles vous fournit le simple fait de créer des définitions et de faire de l’héritage entre elles. C’est donc au développeur de gérer (via une norme, convention …) la différenciation entre layout et pages.

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 Pattern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design pattern" 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