# JSF & DesignTemplates



## KSG9|sebastian (14. Jan 2005)

Hi Leute, 

nachdem ich langsam bissl was kapier mit JSF wollte ich mal nachfragen wie man am besten design templates einbaut. gibts schon standartisierte möglichkeiten so in der art von struts tiles ?

ich hab mir schon überlegt das ganze über custom tags zu machen aber das is ne so dolle 
das ganze soll so aussehen, dass man ein template-file angibt das ungefähr so aussieht

news.tpl


```
<table>
<tr>
  <td>%topic%</td>
  <td>%date%</td>
</tr>
<tr>
  <td colspan="2">%text%</td>
</tr>
</table>
```

Und dann werden die Variablen (%xyz%) durch inhalte ersetzt und mit ner show methode oder sowas bekommt man dann das ganze template zum ausgeben. 
das template file enthält einen block, d.h. bei 10news wird der block 10mal beschrieben und zu ner variable hinzugezählt, damit man nachher alle news in einer vari hat.

ich hab aber absolut keine ahnung wie ich das mit jsf lösen könnte. mit jsp isses ja kein prob, mit file parsen, regex und zurückgeben


----------



## Bleiglanz (14. Jan 2005)

a) du kannst ja Struts Tiles einfach mit JSF verwenden, kein Prob

b) was du beschreibst kannst du doch mit #{backingBean.topic} usw. auch machen?

was genau schwebt dir denn vor, willst du zur Laufzeit oder zur Entwurfszeit deine Ersetzungen machen?


----------



## KSG9|sebastian (14. Jan 2005)

also, ich hab mir überlegt dass ich jsf benutze um v.a. code und html sauber zu trennen.

deshalb will ich bei den jsp-seiten nur den code drin haben. das geht auch ohne templates. aber ich hab keine lust jedesmal alle jsp seiten zu öffnen und die html ausgabe zu ändern. 
deshalb will ich das ganze so gestalten, dass ich ein main-template file hab, das das standart design der seite angibt und angibt wo der content hinkommt und in den contentteil werden die module geladen.
die module greifen wiederum auf ein standart-template zu und ersetzen die platzhalter durch inhalte.

dadurch muss ich dann nur noch 2 template files anpassen und nicht mehr sämtliche jsps öffnen


----------



## Bleiglanz (14. Jan 2005)

ja eben tiles (zu laufzeit)

Dreamweaver (zur Entwurfszeit)

include header footer wie üblich

eigenen tag als "Wurzel" für jede Seite

usw.


----------



## KSG9|sebastian (14. Jan 2005)

aber da ich eben mit jsf angefangen hab will ich net auch noch tiles anfangen, v.a. find ich es n bissl nervig dass man wieder 5config-dateien braucht 

gibts irgendwie ne andere möglichkeit ?


----------



## Bleiglanz (14. Jan 2005)

Sitemesh

ich selber habs aufgegeben, letztes mal hab ich alles als xml fragmente geschrieben und vor dem deployen durch ant per xslt zu den eigentlichen .jsp Seiten "aufgepeppt"

wirklich gute Lösung kenne ich  nicht


----------



## KSG9|sebastian (15. Jan 2005)

hm..dann also doch reines jsp file dass n template übergeben bekommt und per regex die platzhalter ersetzt..ist wohl immer noch die unkomplizierteste und schnellste lösung


----------



## raptor (28. Aug 2007)

Der Thread ist ja nun schon ein paar Tage alt, ich suche nun aber ebenfalls nach einer Lösung. Gibt es hier was neues?


----------



## orribl (28. Aug 2007)

Hi,

es gibt 'ne Template Engine fuer JSF: Facelets. Hier der Link zum Projekt:
https://facelets.dev.java.net/
und hier noch 'n Link zu 'nem Artikel ueber Facelets:
http://www-128.ibm.com/developerworks/java/library/j-facelets/


----------



## raptor (28. Aug 2007)

Was ist Facelets in Bezug zu JSF? Ist das eine eigene erweiterte Implementierung oder tatsächlich eine reine Template-Engine? Habe mir sagen lasse, dass es ersteres ist, wobei ich das gar nicht so glaube.

edit: ohhh. Ich lese gerade den zweiten Link durch. Wenn ich Facelets nutzen dürfte wäre das schon schön. Leider liegt das nicht in meiner Macht.  :roll:


----------



## orribl (28. Aug 2007)

Meiner Meinung nach ist Facelets eine reine Template-Engine, welche aber natuerlich mit dem JSF-Lifecycle im Hinterkopf entwickelt wurde. 
Es ist keine Erweiterung zu JSF, das es dem Entwickler keine zusaetzliche Funktionalitaet im Bezug auf MVC zur Verfuegung stellt, sonder nur die View-Seite vereinfacht und einen generischeren Ansatz erlaubt.


----------



## raptor (28. Aug 2007)

Den Eindruck habe ich auch. Und auf den ersten Blick scheint es auch wirklich ganz cool zu sein.

edit: Wie würde ich es denn am Geschicktesten machen, wenn ich Facelets nicht verwenden kann? Also mit reinen Bordmitteln von JSF / JSP.


----------

