© 1 taglibs applications struts taglibs. © 2 applications struts les tags libraries struts bean :...

26
© 1 Taglibs Applications Struts Taglibs

Upload: louis-chretien

Post on 04-Apr-2015

118 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

1

Taglibs

Applications Struts

Taglibs

Page 2: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

2

Taglibs

Applications Struts

Les Tags Libraries Struts

• Bean : Accès aux JavaBean, aux ressources

• Html : Gestion des formulaires, champs de saisie, liens

• Logic : traitements itératifs, conditionnels

• Nested : Utilisation des taglibs dans des contextes imbriqués

• Tiles : Structuration des pages, définition de composants réutilisables

Page 3: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

3

Taglibs

Applications Struts

La Taglib Bean

• Amélioration des tags JSP <jsp:useBean>, <jsp:getProperty> et <jsp:setProperty>

• Interaction avec les objets représentant le modèle de l’application

• Permettre :– La définition de nouveaux beans à partir

de sources diverses,– L’affichage d’un bean (ou d’une de ses

propriétés) dans la JSP

Taglib Bean

Page 4: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

4

Taglibs

Applications Struts

Attributs d’un Tag

• Id : identifiant pour nommer un nouveau bean

• Name : identifiant utilisé pour retrouver un bean existant

• Property : nom de la propriété recherchée du bean

• Scope : visibilité associée au bean (page, request, session, application)

Taglib Bean

Page 5: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

5

Taglibs

Applications Struts

Création d’un Bean (1)<bean:define>

• Créer un nouveau bean

• Référencer un bean existant

• Créer un nouveau bean initialisé à la valeur d’une propriété d’un autre bean

<bean:define id=”myBean" value=”a new string"/>

<bean:define id="baz" name="bop" type="com.company.MyClass"/>

<bean:define id="bop" name="user" property="name"/>

Taglib Bean

Page 6: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

6

Taglibs

Applications Struts

Création d’un Bean (2)

• Existence d’autres tags de création, faisant la copie de beans existants (ou de propriétés de beans) :

<bean:cookie> <bean:header> <bean:include> <bean:struts> <bean:parameter> <bean:page> <bean:resource>

• Les beans créés de cette façon le sont avec la visibilité “page”.

Taglib Bean

Page 7: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

7

Taglibs

Applications Struts

Affichage d’un Bean (1)<bean:write>

• Le contenu d’un Bean, ou d’une propriété de Bean, est converti en une String et copié dans la réponse

• Utilisation possible de propriétés indexées ou imbriquées

<bean:write name="myObject" />

<bean:write name="myObject" property="myProperty" />

<bean:write name="myObject" property="myIndexedProperty[2]" />

<bean:write name="myObject" property="myProperty.class.name" />

Taglib Bean

Page 8: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

8

Taglibs

Applications Struts

Affichage d’un Bean (2)

• Formater une valeur d’un bean– Attribut format du tag <bean:write>

• Localisation des patterns de formatage (fonction de la langue)– Embarquer les patterns dans les bundles

de ressources (number.format=#,##0.00)

<bean:write name='mybean'

property='number' format='#,##0.00'/>

<bean:write name='mybean' property='number'

format='#,##0.00' formatkey='number.format'/>

Taglib Bean

Page 9: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

9

Taglibs

Applications Struts

Messages<bean:message>

• Affiche un message “internationalisé”.

• Message identifié par une clef• Il est possible de spécifier des paramètres optionnels

• Le fichier de ressources permet de faire l’association entre la clef et le message correspondant

<bean:message key="myPage.title"/><bean:message key="message.hello" arg0="<%= myBean.getName() %>"/>

myPage.title = Welcome to our sitemessage.hello = Hello {0} !

Taglib Bean

Page 10: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

10

Taglibs

Applications Struts

La Taglib Html

• Tags nécessaires à la création d’interfaces utilisateur, notamment les formulaires

• Permettent :– De remplir automatiquement les champs à

afficher– De retourner les valeurs

• Autres tags permettant :– D’afficher des messages d’erreur– De gérer les liens et les sessions

Taglib Html

Page 11: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

11

Taglibs

Applications Struts

Formulaires (1)<html:form>

• Représente un formulaire de saisie, associé à un bean dérivant de ActionForm

• Chaque champ du formulaire doit correspondre à une propriété du bean.

• Le bean sert à renseigner les champs du formulaire, puis à stocker les saisies de l’utilisateur lorsque le formulaire est soumis à la servlet contrôleur

Taglib Html

Page 12: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

12

Taglibs

Applications Struts

Formulaires (2)

• button

• cancel

• checkbox

• file

• hidden

• radio

• submit

• select

• option

• options

• image

• multibox

• password

• text

• textarea

• reset

Les tags suivants s’utilisent à l’intérieur du tag <html:form>

Taglib Html

Page 13: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

13

Taglibs

Applications Struts

La Taglib Html - Exemple

• Un formulaire permettant de se loguer

<html:form action="/logon" focus="username">

Username : <html:text property="username"/> <br/>

Password : <html:password property="password"/>

<html:submit propery="submit" value="Submit">

</html:form>

Taglib Html

Page 14: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

14

Taglibs

Applications Struts

Erreurs<html:errors>

• Affiche les messages d’erreurs en attente (résultat de la méthode validate d’un ActionForm par exemple)

• Peuvent être placés n’importe où dans la page.• Pas d’affichage “parasite” si aucun message

d’erreur en attente– Permet de réutiliser la page de saisie pour afficher

les messages d’erreur

• Le texte du message est récupéré via les ressources de l’application (idem <bean:message>)

Taglib Html

Page 15: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

15

Taglibs

Applications Struts

Hyperliens

• <html:link>

Génère un élément HTML <a> (ancre, ou lien vers une URL spécifiée)

• <html:img>

Génère un élément HTML <img> pour l’image spécifiée par l’URL

L’encodage d’URL est automatiquement appliqué, pour garder la session en cas d’absence des cookies.

Taglib Html

Page 16: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

16

Taglibs

Applications Struts

Checkboxes (1)

• Une checkbox ne renvoie la valeur spécifiée dans l'attribut value que si elle est cochée

• Si la checkbox n'est pas cochée, – Il faut explicitement donner une valeur

<html:checkbox property="someprop" 

value="true">Yes</html:checkbox>

Taglib Html

Page 17: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

17

Taglibs

Applications Struts

Checkboxes (2)

• Dans l’actionString somepropValue = null;if((somepropValue = request.getParameter("someprop"))!=null){ // ckecked Sytem.out.println("The box is checked and its value is " + somepropValue);}else { // not ckecked Sytem.out.println("The box is not checked"); // set the value someprop = "false";}

Taglib Html

Page 18: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

18

Taglibs

Applications Struts

La Taglib Logic

• Regroupe les tags permettant d’ajouter des traitements logiques dans les JSP– Reprend l’essentiel des tags disponibles

dans la JSTL (JSP Standard Tag Library)• http://java.sun.com/products/jsp/jstl/

– Conditions sur la génération de texte– Boucles sur les collections d’objets– Gestion du flot de l’application

• forward, redirect

Taglib Logic

Page 19: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

19

Taglibs

Applications Struts

Comparaisons de valeurs

• Affiche le contenu du tag si le résultat de la comparaison est vrai

• L’attribut value est comparé à l’un des attributs de comparaison: cookie, header, parameter, et property et/ou name

<logic:equal><logic:greaterEqual><logic:greaterThan>

<logic:notEqual><logic:lessEqual><logic:lessThan>

<logic:equal value="" parameter="username"> Error: a username must be specified</logic:equal>

Taglib Logic

Page 20: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

20

Taglibs

Applications Struts

Gestion de collections<logic:iterate>

• Permet d’iterer sur une Collection: évalue le contenu du tag pour chaque élément contenu dans la Collection

<logic:iterate name=’user’ property=’children’ id=’child’>

<bean:write name=’child’ property=’name’/><br>

</logic:iterate>

Taglib Logic

Page 21: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

21

Taglibs

Applications Struts

Autres Tags

• <logic:match>,<logic:notMatch> Évalue le contenu du tag si la valeur est une

sous-chaine de la variable spécifiée

• <logic:present>, <logic:notPresent>

Évalue le contenu du tag si la valeur est présente

• <logic:forward>,<logic:redirect> Redirige vers la page indiquée

Ex 13-15

Taglib Logic

Page 22: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

22

Taglibs

Applications Struts

• Extension des tags de base, qui permettent l’utilisation de beans imbriqués.

• Permet aux tags d’avoir connaissance de leur environnement

• Cette relation est basée sur les associations entre les beans eux-mêmes.

La Taglib NestedTaglib Nested

Page 23: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

23

Taglibs

Applications Struts

• Contient des tags utilisés pour créer des composants dynamiques réutilisables

• Permet la construction de pages Web en assemblant des “morceaux” de pages réutilisables, appelés Tiles

• Ex.: header, footer, menu, body

• Chaque Tile est une page JSP et peux être elle-même assemblée à partir d’autres Tiles.

La Taglib TilesTaglib Tiles

Page 24: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

24

Taglibs

Applications Struts

Tags Tiles• <tiles:insert> Insère une Tile avec la possibilité de passer des

paramètres (appelés attributs).• <tiles:definition> Permet d’associer un nom logique à l’ensemble

“URL d’une Tile / valeurs d’attributs”. Les définitions peuvent être faites dans une page JSP, ou dans un ou plusieurs fichiers de déclarations.

• <tiles:put> Définit un attribut à passer à une Tile. Ne peut

être utilisé qu’associé aux tags 'insert' et 'definition‘.

Taglib Tiles

Page 25: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

25

Taglibs

Applications Struts

Tiles : exemple<%@ taglib uri="/tags/tiles" prefix="tiles" %><TABLE border="0" width="100%" cellspacing="5"> <TR> <TD colspan="2"><tiles:insert attribute="header"/></TD> </TR> <TR> <TD width="140" valign="top"> <tiles:insert attribute="menu"/> </TD> <TD valign="top" align="left"> <tiles:insert attribute="body"/></TD> </TR> <TR> <TD colspan="2"> <tiles:insert attribute="footer" /> </TD> </TR></TABLE>

<%@ taglib uri="/tags/tiles" prefix="tiles" %><tiles:insert page="/layouts/myLayout.jsp" flush="true"><tiles:put name="title" value="Hello World" /><tiles:put name="header" value="/tiles/header.jsp" /><tiles:put name="footer" value="/tiles/footer.jsp" /><tiles:put name="menu" value="/tiles/menu.jsp" /><tiles:put name="body" value="/tiles/helloBody.jsp" /></tiles:insert>

Page 26: © 1 Taglibs Applications Struts Taglibs. © 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des

©

26

Taglibs

Applications Struts

La Taglib struts-layout

• Bibliothèque permettant de développer des écrans à destination des applications web de gestion– Pas fourni en standard avec Struts – Améliorations des contrôles de saisies au

sein d'un formulaire– Grille d'affichage de données (avec

support de pagination)– Tags de génération d'onglets Web– Utilisation d'arborescences Web

• http://struts.application-servers.com

Struts-layout