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