This page (revision-63) was last changed on 26-Mar-2013 12:05 by Dieter Käppel

This page was created on 07-Jun-2009 20:54 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
63 26-Mar-2013 12:05 26 KB Dieter Käppel to previous
62 26-Mar-2013 12:05 26 KB Dieter Käppel to previous | to last
61 24-Nov-2012 12:00 26 KB Dieter Käppel to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 3 added 30 lines
!Meta Component
Der wohl interessanteste Tag in der Intersult Bibliothek com.intersult.ui ist die Facelet-Meta-Component. Was ist eine Meta-Component? Das ist eine Component zur Konstruktion eigener Components mittels einer Taglib. Der Bau eigener Komponenten wird damit zum Kinderspiel, da in der Regel kein Java-Code mehr geschrieben werden braucht.
!Beispiel Infobox
Als Aufgabenstellung soll ein Facelet gebaut werden, das auf einer XHTML-Seite wie folgt eingebaut werden kann:
{{{
<i:info id="info" value="Dies ist die Infobox"/>
}}}
Die Implementierung erfolgt als Facelet in der Datei info.xhtml:
{{{
<ui:composition>
<i:meta useId="#{id}" var="comp" rendered="#{empty rendered or rendered}">
<s:graphicImage id="#{comp.id}" url="#{empty img ? '/images/information.png' : img}"
onmouseover="$('#{comp.clientId}-text').style.display = '';"
onmouseout="$('#{comp.clientId}-text').style.display = 'none';"/>
<s:span id="#{comp.id}-text" style="display: none; position: fixed; background-color: yellow; padding: 3px;">
<h:outputText value="#{value}"/>
</s:span>
</i:meta>
</ui:composition>
}}}
Was passiert hier? Der meta-Tag generiert eine Component-Id und stellt diese unter der unter ''var'' angegebenen Variable (hier ''comp'') zur Verfügung. Diese Variable hat zwei Properties:
* __id__ Innerhalb des meta-Tags kann hier eine Id abgerufen werden und als Zuweisung für eine andere Komponente verwendet werden. Diese Id darf natürlich nur einmal verwendet werden, da die im Component-Tree von JSF eindeutig sein muss. Werden mehrere Ids gebraucht, können diese mit #{comp.id}-suffix erzeugt werden. Die Id wird von JSF generiert, falls von außen keine Id mit ''useId'' übergeben wurde. Im Gegensatz zum Zuweisen normaler Ids darf useId="#{id}" benutzt werden, auch wenn die Variable 'id' nicht zugewiesen oder einen Leerstring enthält. Der meta-Tag arbeitet dann ganz normal mit der generierten Id.
* __clientId__ Innerhalb des meta-Tags kann hier die clientId, als die im HTML-Code tatsächlich heraus generierte Id abgefragt werden. Dies wird vom JavaScript-Code gebraucht.