JSF Component in Scriptlet rendern.

Danielku15

Erfahrenes Mitglied
Hallo Leute.
Ich möchte meine Oberfläche über eine XML Konfigurationsdatei dynamisch erweitern können. Dazu gebe ich eine Liste von Klassen an von welchen eine Instanz erzeugt wird. Diese Klassen haben die Möglichkeit über einen Getter ein UIComponent zurückzugeben.

Nun ist mein Problem. In meinem JSPX File möchte ich nun die UIComponents welche in den Gettern erzeugt werden in meinen HTML Code Rendern. Nur wie ermögliche ich das? Ich hab folgenden Code probiert:
Java:
<f:verbatim>
        <jsp:scriptlet>
            // Wird aus Collection Geladen:  
            UIComponent oTag = new HtmlInputText();
            oTag.encodeBegin(FacesContext.getCurrentInstance());
        </jsp:scriptlet>
    </f:verbatim>


Jedoch wird mir kein Textfeld angezeigt. Oder gibt es generell eine andere Möglichkeit die Komponenten über einen getter eines Beans zu erzeugen? Denn mir scheint diese Lösung sehr unsauber.


[EDIT]
Das Scriptlet wird irgendwie ignoriert. Jede Form von Code zwischen dem ScriptletTag wird einfach nicht ausgeführt. Aber es muss doch eine Möglichkeit geben die Komponente im Backing-Bean zu Instanzieren und darauf in das Jspx File einzubinden. Ich überlege mir gerade eine JSF Komponente + Tag mit ValueBinding zu erstellen. Über ein Attribut soll es dann möglich sein eine Getter-Methode anzugeben welche wahlweise eine einzelne UiComponent oder eine Collection mit UiComponents beinhalten kann. Das benutzerdefinierte Jsf Komponente soll darauf alle übergebenen Parameter an das Jsp File weiterleiten.

Jedoch ist mein Problem: Was muss ich alles Beachten, dass die UiComponents auch richtig funktionieren. Die Bindings der UiComponents sollten eigentlich ja bereits über die Instanzen geregelt sein. Nur welche Methoden muss ich bei meiner Jsf Komponente implementieren dass alle Funktionalitäten gewährleistet werden. Denn die UiComponents implementieren die Methoden auf unterschiedliche Weise.

Es kann doch nicht so schwer sein eine UiComponent von einem ManagedBean in die Oberfläche zu rendern.

Gruß Daniel
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück