Methodenaufruf in einer generischen Facelet-Komponente
Dezember 10th, 2008
Bei der Entwicklung generischer Facelets-Komponenten ist es oft erforderlich Methoden einer Managed Bean aufzurufen.
Das folgende Beispiel demonstriert so eine Komponente, die der Einfacheit halber nur aus einem CommandLink-Tag besteht. In dem Attribut “action” des Tag wird die Navigationsmethode einer ManagedBean aufgerufen.
Facelet-Komponente “commandLink.xhtml” :
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk”>
<t:commandLink id=”#{id}” action=”#{bean[method]}” value=”#{value}”/>
</ui:composition>
Diese Facelet-Komponente kann nun in weiteren Facelets (nachdem sie in der taglib.xml deklariert wurde) parametrisiert aufgerufen werden :
<tf:commandLink
value=”TestCommandLink”
id=”anyId”
bean=”#{TestBean}”
method=”testCommandLink” />
In der Managed Bean “TestBean.java” ist die Navigationsmethode deklariert :
public String testCommandLink(){
return “navigationCase”;
}