Calendar

November 2008
M T W T F S S
« Oct    
 12
3456789
10111213141516
17181920212223
24252627282930

October 10, 2006

Utilisation de displaytag

Catégorie : Général — admin @ 9:46 am

Pour un projet Java, j’ai eu à utiliser la librairie displaytag ; elle est constituée de différents tags XML, afin de présenter des données au format HTML, au sein d’une application utilisant le modèle MVC.
Voici les quelques notes que j’ai pris au fur à mesure, et qui me servent d’aide-mémoire.

Créer un schéma XML de la forme suivante dans la jsp :

<display:table>
<display:column/>
<display:column/>
</display:table>

Dans la classe Action associée, ajouter un attribut à la requête qui contient les résultats à afficher :

oRequest.setAttribute(”bar”, oCmd.getListObj());

Dans la balise d’ouverture de display:table, préciser le nom de la classe decorator ainsi qu’un champ name, qui aura le même nom que l’attribut défini avant, dans l’action :

<display:table decorator=”org.moi.decorator.foo” name=”bar” >

Pour une colonne à formater, préciser une propriété property, qui devra avoir un nom d’un champ de l’objet défini au dessus : bar.

<display:column title=”Titre colonne” property=”monChamp”/>

Dans la classe decorator précisée, créer une fonction getMonChamp (même nom que la propriété, préfixé de get, et avec une majuscule pour le premier caractère. Cette fonction renvoie la chaine qui sera affichée. Si la fonction n’existe pas dans le decorator, le champ sera extrait de l’objet bar grâce à son getter.
Dans cette fonction getMonChamp, voici comment obtenir les infos sur l’objet courant :

TypeObj oObject = (TypeObj)getCurrentRowObject(); /*on récupère l’objet courant */
String sToto = oObject.getToto(); /* un des getter de l’objet */
return sToto; /* par exemple */

Pour gérer la sortie des résultats sur plusieurs pages, il faut ajouter deux propriétés dans la balise. La valeur de pagesize va déterminer le nombre de résultats affichés sur chaque page, et requestURI doit contenir l’url d’accès à la page :

<% String sLink=request.getContextPath()+”/objSearch.do”; %>
<display:table requestURI=”<%=sLink%>” pagesize=”25″>

• • •

No Comments »

No comments yet.

Comments RSSTrackBack URI

Leave a comment

Powered by: WordPress