OVH Cloud OVH Cloud

taglibs et Velocity

3 réponses
Avatar
Kupee
Salut, je reviens avec mes questions sur les taglibs.
Imaginons que je veuille afficher dans une page un bout de html assez
important, et que celui-ci se retrouve a plusieurs endroits, voir dans
plusieurs jsp.
J'ai donc le choix entre faire une page jsp que je vais inclure un peu
partout (bahhh moche)
ou alors faire un superbe taglib.
Mais ce taglib en gros ca va etre une classe qui fera des print() pour
générer mon html, ce qui est plutot pas pratique pour le html (c'est
d'ailleurs pour ca qu'on a fait les jsp pour remplacer les jsp dans ce
genre de cas non ?)
Alors je me disais que la solution ici serait peut etre d'utiliser
Velocity ? (ya t'il un autre moteur de template en java ?)
Quelqu'un a un avis sur la question, qui est : pour ou contre Velocity
dans les taglibs ?
merci

3 réponses

Avatar
jerome moliere
On Wed, 22 Jun 2005 10:43:19 +0200, Kupee wrote:

Salut, je reviens avec mes questions sur les taglibs.
Imaginons que je veuille afficher dans une page un bout de html assez
important, et que celui-ci se retrouve a plusieurs endroits, voir dans
plusieurs jsp.
J'ai donc le choix entre faire une page jsp que je vais inclure un peu
partout (bahhh moche)
ou alors faire un superbe taglib.
Mais ce taglib en gros ca va etre une classe qui fera des print() pour
générer mon html, ce qui est plutot pas pratique pour le html (c'est
d'ailleurs pour ca qu'on a fait les jsp pour remplacer les jsp dans ce
genre de cas non ?)
Alors je me disais que la solution ici serait peut etre d'utiliser
Velocity ? (ya t'il un autre moteur de template en java ?)
ou il y en a plein dont Freemarker entre autres...

des plus petits aussi...Jbyte par exemple...
Quelqu'un a un avis sur la question, qui est : pour ou contre Velocity
dans les taglibs ?
moi j'aime pas les tags libs :)

merci




--
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

Avatar
Jon
Kupee wrote:
Salut, je reviens avec mes questions sur les taglibs.
Imaginons que je veuille afficher dans une page un bout de html assez
important, et que celui-ci se retrouve a plusieurs endroits, voir dans
plusieurs jsp.
J'ai donc le choix entre faire une page jsp que je vais inclure un peu
partout (bahhh moche)
ou alors faire un superbe taglib.
Mais ce taglib en gros ca va etre une classe qui fera des print() pour
générer mon html, ce qui est plutot pas pratique pour le html (c'est
d'ailleurs pour ca qu'on a fait les jsp pour remplacer les jsp dans ce
genre de cas non ?)
Alors je me disais que la solution ici serait peut etre d'utiliser
Velocity ? (ya t'il un autre moteur de template en java ?)
Quelqu'un a un avis sur la question, qui est : pour ou contre Velocity
dans les taglibs ?


Si tu veux un moteur de template Java qui fonctionne bien avec les
taglibs, il vaut mieux regarder côté FreeMarker,
http://freemarker.org

Bon, plus spécifiquement:

http://freemarker.org/docs/pgui_misc_servlet.html#autoid_47

Le lien ci-dessus explique comment utiliser les taglibs depuis un
template FreeMarker. Et ça fonctionne vraiment, je te jure! :-)

Mais bon, s'il ne s'agit pas d'utiliser un taglibs déjà écrit, c'est
pas la peine écrire un taglib, c'est assez lourd. FreeMarker a le
concept des "transforms", que tu peux écrire pour filtrer un bloc de
contenu d'une page. Un transform s'écrit en Java. Aussi, il y a les
macros qui s'écrivent en FTL (FreeMarker template language)

Ici pour les transforms:

http://freemarker.org/docs/pgui_datamodel_transform.html

Et regarder ici pour les macros:

http://freemarker.org/docs/dgui_misc_userdefdir.html

Bon, j'espère avoir aidé un peu.

Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/

merci


Avatar
René Mouchot
Kupee wrote:
Salut, je reviens avec mes questions sur les taglibs.
Imaginons que je veuille afficher dans une page un bout de html assez
important, et que celui-ci se retrouve a plusieurs endroits, voir dans
plusieurs jsp.
J'ai donc le choix entre faire une page jsp que je vais inclure un peu
partout (bahhh moche)
ou alors faire un superbe taglib.
Mais ce taglib en gros ca va etre une classe qui fera des print() pour
générer mon html, ce qui est plutot pas pratique pour le html (c'est
d'ailleurs pour ca qu'on a fait les jsp pour remplacer les jsp dans ce
genre de cas non ?)


Pas forcement une autre classe, tu peux faire ton tag personnalisé via
un fichier .tag
Par ex. - tire du tutorial sun :

// response.tag qui definit un tag response, place dans WEB-INF/tags

<code>

<%@ attribute name="greeting" required="true" %>
<%@ attribute name="name" required="true" %>
<h2><font color="black">${greeting}, ${name}!</font></h2>

</code>

// tu peux ensuite reutiliser le tag, voir vers la fin le tag response
avec ses 2 parametres

<code>

<%@ taglib tagdir="/WEB-INF/tags" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"
prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"
prefix="fn" %>
<html>
<head><title>Hello</title></head>
<body bgcolor="white">
<img src="duke.waving.gif">
<c:set var="greeting" value="Hello" />
<h2>${greeting}, my name is Duke. What's yours?</h2>
<form method="get">
<input type="text" name="username" size="25">
<p></p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>

<c:if test="${fn:length(param.username) > 0}" >
<h:response greeting="${greeting}"
name="${param.username}"/>
</c:if>
</body>
</html>

</code>

Alors je me disais que la solution ici serait peut etre d'utiliser
Velocity ? (ya t'il un autre moteur de template en java ?)
Quelqu'un a un avis sur la question, qui est : pour ou contre Velocity
dans les taglibs ?
merci