MyFaces – panelNavigation2 und CSS

Dynamische Menüs sind toll, und wenn diese Session Save sind ist es noch viel besser! Das Apache MyFaces Projekt hat dazu eine Komponente entwickelt: panelNavigation2. Doch die passende Dokumentation ist noch im Entstehen, und einige Examples lassen sich leider nicht vollständig laden. So bleiben wichtige Teile des JSP-Sourcecodes verborgen, was vor allem Neueinsteigern das Leben schwer machen kann… somit folgt hier also der komplette Sourcecode einer JSP mit der Komponente:

<div>
<f:loadBundle basename=“org.yourdomain.resource.ResourcesMenu“ var=“ResourcesMenu“ />
<h:form>
<t:div id=“subnavigation_outer“ forceId=“true“>
<t:div id=“subnavigation“ forceId=“true“>
<t:panelNavigation2 id=“nav1″ layout=“list“ itemClass=“mypage“
activeItemClass=“selected“
disabledStyle=“color:red;padding: 2px 20px 2px 25px“>
<t:navigationMenuItems id=“navitems“
value=“#{navigationMenu.panelNavigationItems}“ />
</t:panelNavigation2>
</t:div>
</t:div>
</h:form>
</div>

Wichtig – und nicht dokumentiert – ist u.a. dass man die Komponente in einem form-Tag wrappt, denn nur dann kann ja auch die hinterlegte Action ausgewertet werden. Außerdem sollte man bei dem einrahmenden DIV’s auch den forceId-Parameter auf true setzen, denn sonst würde, sobald man den Snippet in ein <jsp:include setzt, das CSS nicht mehr greifen.

Ubuntu-Buch kostenlos bei Galileocomputing

Galileo Computing hat sein Angebot an kostenlos erhätlichen Büchern erweitert. Ab sofort ist nun neben den bekannten Buch „Java ist auch nur eine Insel“ auch ein Werk zur populären Linux-Distribution „Ubuntu“ erschienen. Galileo Computing schreibt:

Ubuntu Linux hat sich seit geraumer Zeit als Nummer Eins unter den Linux-Desktopsystemen etabliert. Und das hat einen guten Grund: Benutzerfreundlichkeit, leichte Bedienung, optimale Hardwareerkennung: Ubuntu macht keine Probleme. Deshalb ist es für Linux-Einsteiger und -Umsteiger interessant. Aber längst nicht nur.

Was man mit dem System alles anstellen kann, beschreibt dieses Buch ausführlich und verständlich. Die zweite Auflage wurde stark erweitert. Von Paketverwaltung über Optimierung, Programmierung, Migration und Kernelkompilierung bis hin zur Netzwerktechnik finden Sie alle wichtigen Fragen zu Ubuntu Linux in diesem Buch beantwortet.

Der Download umfasst rund 30 MB, das Buch mit über 900 Seiten ist im Fachhandel auch in gedruckter Form für 39,90 Euro erhältlich.

Kostenloses Linux-Kernel-Buch bei O’Reilly

O’Reilly hat ein weiteres aktuelles Werk zum kostenlosen Download bereitgestellt. Dieses mal handelt es sich um das Buch „Linux Kernel in a Nutshell“ von Greg Kroah-Hartman. Golem schreibt zu diesem Buch:

„Linux Kernel in a Nutshell“ widmet sich der Konfiguration eines Kernels, um beispielsweise Funktionen wie Sound und WLAN-Unterstützung zum Laufen zu bekommen. Dabei sollen alle nötigen Schritte erläutert werden, vom Download der Kernel-Quellen über die eigentliche Konfiguration bis zur Möglichkeit, Kernel-Optionen zur Laufzeit zu kontrollieren. Auch auf einzelne Treiber und die benötigten Werkzeuge geht Kroah-Hartman in seinem Buch ein, widmet sich aber explizit nicht der Kernel-Programmierung. Linux-Erfahrungen sollte der Leser dennoch mitbringen.

Das Buch ist im PDF- und im DocBook-Format zum Download erhältlich.

Tabellenzellen in t:dataTable

Die dataTable ist an sich ein gutes Werkzeug, um Daten übersichtlich darzustellen. Allerdings wird machmal auch eine unterschiedliche Farbgebung der einzelnen Zellen benötigt, um bestimmte Informationen schneller auffindbar zu machen. In dem folgenden Beispiel wird ein möglicher Lösungsweg dargestellt.

Die entsprechende Backing Bean wird um Methoden ergänzt, die boolsche Werte zurückliefern. Je nach Wert wird dann nur eine Komponente gerendert:

<t:column sortable=“true“>
<f:facet name=“header“>
<t:outputText value=“#{bundle.colHeader1}“ />

</f:facet>

<t:outputText rendered=“#{myValue.testTooLow}“ value=“#{myValue.mywert}“ style=“color:blue;“></t:outputText>
<t:outputText rendered=“#{myValue.testCorrect}“ value=“#{myValue.mywert}“></t:outputText>

</t:column>

MyFaces and Tiles – Examples

Beim erstellen eines Proofs, bei dem JSF mit den Tomahawk-Komponenten des MyFaces-Projektes eingesetzt und als Template-Engine Tiles genutzt werden soll, brachte eine Web-Recherche erst mal viele Altlasten zu Tage. Auf coreservlets.com gibt es ein recht gutes HowTo, welches bei mir sogar auf Anhieb funktioniert – jedoch nicht mit einer Tomakawk-Integration. Exadel hat sein HowTo aus dem Forum inzwischen nach jsf-tutorials.net transferiert, jedoch ist es seit 2003 nicht mehr verändert worden, die Beispielanwendung lässt sich nicht mehr herunterladen und somit ist dieser Artikel leider outdated.

MyFaces selbst hat jedoch selbst zwei gute Einstiegspunkte: zum einen das neue Entwickler-Wiki, welches eine eigene Seite für die Integration von Tiles und JSF bereithält, und zum anderen die Examples, die man jedoch nur im Nightly-Build findet. Gerade letzteres ist ein guter Ausgangspunkt!