JSF & DesignTemplates

Status
Nicht offen für weitere Antworten.

KSG9|sebastian

Top Contributor
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

Code:
<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

Gesperrter Benutzer
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

Top Contributor
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

Gesperrter Benutzer
ja eben tiles (zu laufzeit)

Dreamweaver (zur Entwurfszeit)

include header footer wie üblich

eigenen tag als "Wurzel" für jede Seite

usw.
 

KSG9|sebastian

Top Contributor
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

Gesperrter Benutzer
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

Top Contributor
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

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

raptor

Aktives Mitglied
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

Mitglied
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

Aktives Mitglied
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.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben