# Eigenen Renderer registrieren



## mad-din (30. Jan 2008)

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


----------



## mad-din (1. Feb 2008)

Geht das, was ich vorhab nicht oder weiß das nur keiner?

Viele Grüße,
Martin


----------



## mad-din (5. Feb 2008)

Weiß das wirklich keiner? Kann ja nicht sein....


----------



## Reeny (6. Feb 2008)

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":


```
<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 (6. Feb 2008)

Tatsächlich, 

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

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


----------



## maki (6. Feb 2008)

> Sowas findet man echt in keinem Buch !!


In den falschen nicht 

Core JavaServer Faces 2nd Edition, ab Seite 378.


----------



## Reeny (11. Feb 2008)

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 (11. Feb 2008)

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


----------

