2009-05-25 5 views
2

Je me demandais si quelqu'un avait de l'expérience avec l'utilisation d'un langage de template pour générer la sortie html dans le moteur de rendu du composant.JSF renderers - using templates

Il me semble que faire des choses comme celles-ci est difficile à maintenir si le rendu de votre composant subira des changements au cours de sa vie.

writer.write('\n'); 
writer.startElement("script", null); 
writer.writeAttribute("type", "text/javascript", null); 
writer.writeAttribute("language", "Javascript", null); 
writer.write("var checkbox_off = \"" + CHECKBOX_OFF_IMAGE_PATH + "\";\n"); 
writer.write("var checkbox_on = \"" + CHECKBOX_ON_IMAGE_PATH + "\";\n\n"); 
writer.write("cache1 = new Image(" 
        + CHECKBOX_IMAGE_WIDTH 
        + "," 
        + CHECKBOX_IMAGE_HEIGHT 
        + ");\n"); 
writer.write("cache1.src=checkbox_off;\n"); 
... 

J'ai vu des articles discuter de l'utilisation de Velocity comme langue renderer templating (http://people.apache.org/~matzew/jsfvelocity.html) mais je wordering comment les autres développeurs de composants JSF ont résolu ce problème et s'il y a un consensus plus général sur la façon de gérer cette problème.

Répondre

0

Je ne suis pas sûr qu'il existe un consensus sur l'utilisation de modèles dans les moteurs de rendu - certainement, il n'y a rien dans le JSF specification. L'effort principal pour utiliser les templates dans JSF est au niveau de la définition de la vue via Facelets, mais cela est peu utile lors de l'écriture des rendus.

Il peut être intéressant d'examiner certains des processus de construction de la bibliothèque de composants open source pour voir s'ils ont déjà abordé ce problème.

1

Essayez d'utiliser Facelets avec JSF. Vous pouvez déplacer le code Renderer entier dans un fichier html. Vous n'avez pas besoin de le faire en Java. Si vous avez besoin d'un échantillon, je peux partager cela.

+0

Bien sûr, un échantillon serait génial –