Um seiner Wicket-Anwendung ein geeignetes Favicon zu verleihen, erstellt man einen HeaderContributor. Als Parameter dient eine ResourceReference auf das darzustellende Icon.
| 01 | public class FavIconHeaderContributor implements IHeaderContributor |
| 02 | { |
| 03 | ResourceReference _resourceReference; |
| 04 | |
| 05 | public FavIconHeaderContributor(ResourceReference resourceReference) |
| 06 | { |
| 07 | _resourceReference=resourceReference; |
| 08 | } |
| 09 | |
| 10 | public void renderHead(IHeaderResponse response) |
| 11 | { |
| 12 | CharSequence url = RequestCycle.get().urlFor(_resourceReference); |
| 13 | response.renderString(getFavIconReference(url)); |
| 14 | } |
| 15 | |
| 16 | private CharSequence getFavIconReference(CharSequence url) |
| 17 | { |
| 18 | StringBuilder sb=new StringBuilder(); |
| 19 | sb.append("<link rel=\"shortcut icon\" href=\""); |
| 20 | sb.append(url); |
| 21 | sb.append("\" type=\"image/x-icon\">\n"); |
| 22 | return sb.toString(); |
| 23 | } |
| 24 | } |
Andere Beiträge
Posted in Allgemein, Wicket.
Tagged with contributor, favicon, header, resource.
By michael
– 11. Januar 2009
interessanter Beitrag. Wie genau binde ich den HeaderContributer ein? Ich vermute mal in der BasePage der Anwendung?
Danke für den Blog..
Du kannst einen HeaderContributor in jeder Komponente hinzufügen. Man könnte sich also eine FavIcon-Komponente bauen, die verschiedene Icons anzeigt und die man dann einfach einbindet.
Schön daß endlich jemand über die FavIcons schreibt, ich habe das immer irgendwie falsch angepackt. Ein kurzes Anwendungsbeispiel würde dieses Posting perfekt machen. Den StringBuilder ohne capacity-Angabe sieht man leider viel zu oft, auch in Büchern, ist jedoch kein gutes Beispiel.
Gutes Beispiel. Ich habe es mal so weit ergänzt, das es einen funktionsfähigen HeaderContributer ergibt: http://devblog.drakanor.de/2009/09/favicon-with-wicket-and.html