Eigenen Renderer registrieren

Status
Nicht offen für weitere Antworten.

mad-din

Bekanntes Mitglied
Hi!

Wie kann ich in einer JSF Applikation einen eigenen Renderer für eine bereits bestehende Komponenten registrieren? Und zwar würde ich gerne für <h:selectOneListBox /> einen eigenen Renderer registrieren. Ich hab hier zwei Bücher zu JSF, aber in beiden ist nur beschrieben, wie man einen Renderer für eine CustomComponent registriert, aber nicht wie man eine bestehende Komponenten anders rendern lassen kann. Ich könnte natürlich eine CustomComponent erstellen, die auf UISelectOne basiert und dafür dann einen eigenen Tag wie <cc:mySelectOneListBox /> erstellen, aber das scheint mir viel zu aufwändig. Es muss doch einen Weg geben wie man das machen kann, nur wie?

Danke & viele Grüße,
Martin
 

Reeny

Aktives Mitglied
Ich hab davon selbst auch keine Ahnung, aber vielleicht hilft dir das erstmal weiter:

Wenn ich bei der Tomahawk-Bibliothek reinschaue, die ja auch JSF-Komponenten und -Renderer überschreiben, dann machen die das so in ihrer "faces-config.xml":

Code:
    <render-kit>
        <render-kit-id>HTML_BASIC</render-kit-id>
        ...
        <renderer>
            <component-family>javax.faces.SelectOne</component-family>
            <renderer-type>org.apache.myfaces.Listbox</renderer-type>
            <renderer-class>org.apache.myfaces.renderkit.html.ext.HtmlListboxRenderer</renderer-class>
        </renderer>
        ...
    </render-kit>

Versuch das doch auch mal so, setz dann aber für die renderer-class deine eigene Klasse ein ;)


-= reeny =-
 

mad-din

Bekanntes Mitglied
Tatsächlich,

das funktioniert :D Herzlichen Dank! Sowas findet man echt in keinem Buch !!

Danke, hast mir den Abend gerettet :D
Viele Grüße,
Martin
 

Reeny

Aktives Mitglied
Jaaaa, in dieses Buch hab ich selber auch geschaut ... aber der Inhalt auf den Seiten, die du angegeben hast, beschreibt das "Registrieren" der Renderer ziemlich umständlich.

( nur zu seiner Verteidigung ;) )

Außerdem geht der Text mehr auf das Registrieren "fremder Renderer" für eigene Komponenten ein ...

Tja, manchmal ist es schwierig, bei so vielen Büchern, die einem zur Verfügung stehen, das richtige heraus zu suchen und dann auch noch darin das gesuchte Thema zu finden ... :roll:


-> Problem als gelöst markieren?
 

mad-din

Bekanntes Mitglied
Eben :)

Ich hab jetzt auch in einem meiner Bücher etwas vergleichbares gefunden. Dort steht drin, dass HTML_BASIC der Standardrenderkit ist und man mit dieser RenderKit-ID eigene Renderer für die gerade erstellte Komponente registrieren kann. Das Stand aber unter dem Kapitel "Renderer für CustomComponents". Muss man dann auch erstmal wissen, dass man über diese Methode auch vorhanden Komponenten einen eigenen Renderer zuweisen kann.

Danke nochmal an alle!

Viele Grüße,
Martin
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben