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.