# JSF Templateproblem: Ein Template mehrere Clients



## skyper (14. Jan 2011)

Hallo liebe Java Community,

Ich habe vor kurzer Zeit begonnen JAVA EE etwas unter die Lupe genommen und hab mir sofort Netbeans 6.9.1 heruntergeladen und losgelegt.. 

Darauf habe ich mir ein JavaWeb Project erstellt und der index.xhtml sofort eins von den vorangefertigten Templates zugewiesen.

Danach habe ich ein Template Client erzeugt, jedoch fehlt beim Template Client jegliches CSS und im Browser wird der Quellcode des Template Clients nicht in xhtml angezeigt. 

Mir kommt es so vor als wenn ich machen kann was ich will, außer die index.xhtml übernimmt keine Seite das Template  Gegoogelt habe ich auch schon und war leider nicht erfolgreich.


Für Hilfe bin ich sehr dankbar  

index.xhtml:

```
<h:body>
        <ui:composition template="./main-template.xhtml">
            <ui:define name="content">
                <h:outputText value="Hello World"/>
            </ui:define>
        </ui:composition>
    </h:body>
```

client.xhtml

```
<h:body>
        <ui:composition template="./main-template.xhtml">
            
            <ui:define name="top">
                top
            </ui:define>

            <ui:define name="left">
                left
            </ui:define>

            <ui:define name="content">
                content
            </ui:define>

            <ui:define name="bottom">
                bottom
            </ui:define>

        </ui:composition>
        
    </h:body>
```


----------



## Herr K. (15. Jan 2011)

Hallo Skyper,

zuerst die gute Nachricht, die Templates funktionieren schon mit allen Seiten  Die schlechte ist, dass Du noch verstehen musst was Templates genau sind und wie die funktionieren (keine Sorge, ist überschaubar).

Als Template werden i.d.R. Facelets verwendet, da solltest Du viel finden wenn Du googlest. Die Grundidee ist einfach, in einer Datei (dem Template-File) verwendest Du Platzhalt der Form <ui:insert name="xyz" />, da wo Du das Template einsetzt definierst Du eine Substitution der Form <ui:define name="xyz" />

Dass Template aus "main-template.xhtml" wird also eingebunden, allerdings gibt es da nur einen definierten Platzhalter namens "content", die anderen kennt der dann nicht und kann die nicht korrekt verwenden.


----------



## skyper (15. Jan 2011)

Ich kann leider mein ersten Post nicht editieren, aber das hier ist die
main-template.xhtml:

```
<h:body>
        
        <div id="top">
            <ui:insert name="top">Top</ui:insert>
        </div>
        <div>
            <div id="left">
                <ui:insert name="left">Left</ui:insert>
            </div>
            <div id="content" class="left_content">
                <ui:insert name="content">Content</ui:insert>
            </div>
        </div>
        <div id="bottom">
            <ui:insert name="bottom">Bottom</ui:insert>
        </div>
        
    </h:body>
```

Ich hab mich nochmal etwas in JSF und Templates versucht hineinzulesen und habe auch ein Beispiel übernommen, da trat die selbe Anomalie auf. Jedoch funktioniert bei der Anwendung die ich hier geposted habe dass CSS nicht mehr (ohne das ich die Datei verändert habe). Mir ist aufgefallen das Netbeans beim erstellen des Projektes der Template Datei ab und zu einen falschen Pfad angibt den ich manuell ändern muss. 

Naja ich versuche nur zur Sicherheit nochmal mit einer anderen IDE, weil irgendetwas scheint beim Netbeans nicht zu stimmen. 

Danke Herr K. für deine Hilfe, 
ich werd mich versuchen an diesem Tutorial zu halten 
ht*p://jsfatwork.irian.at/semistatic/introduction.html


----------

