Personaliser panelMenu utilisant Facelet
Bonsoir,
aprés la proposition de djo.mos voilà que je pose ma question clairement.
j'utilise eclipse europa 3.3,jsf1.2,facelet 3 et richFaces pour mettre en place un menu vertical.
j'ai volu faire mon composant personalisé donc j'ai developpé un premier fichier menu.xml sous le rep /WEB-INF/composant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition
<style>
.cols {
vertical-align: top;
width: 50%;
}
</style>
<h:form id="form">
<h:panelGrid columns="2" columnClasses="cols" width="100%">
<rich:panelMenu style="width:200px" mode="ajax"
iconExpandedGroup="disc" iconCollapsedGroup="disc"
iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
iconCollapsedTopGroup="chevronDown" iconCollapsedTopPosition="right">
<rich:panelMenuGroup label="Group 1">
<rich:panelMenuItem label="Item 1.1"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.1" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 1.2"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.2" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 1.3"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.3" />
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuGroup label="Group 2">
<rich:panelMenuItem label="Item 2.1"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.1" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 2.2"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.2" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 2.3"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.3" />
</rich:panelMenuItem>
<rich:panelMenuGroup label="Group 2.4">
<rich:panelMenuItem label="Item 2.4.1"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.4.1" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 2.4.2"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.4.2" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 2.4.3"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.4.3" />
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuItem label="Item 2.5"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 2.5" />
</rich:panelMenuItem>
</rich:panelMenuGroup>
<rich:panelMenuGroup label="Group 3">
<rich:panelMenuItem label="Item 3.1"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 3.1" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 3.2"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 3.2" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 3.3"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 3.3" />
</rich:panelMenuItem>
</rich:panelMenuGroup>
</rich:panelMenu>
<rich:panel>
<a4j:outputPanel ajaxRendered="true">
<h:outputText value="#{panelMenu.current} selected" id="current" />
</a4j:outputPanel>
</rich:panel>
</h:panelGrid>
</h:form>
</ui:composition>
</html> |
ensuite le fichier menu.taglib.xml sous le rep /WEB-INF:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://www.developpez.com/jsfEtFacelets/menu</namespace>
<tag>
<tag-name>menu</tag-name>
<source>composant/menu.xhtml</source>
</tag>
</facelet-taglib> |
et enfin j'ai appelé mon menu avec le fichier test.xhtml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:mj=" http://www.developpez.com/jsfEtFacelets/menu">
<head>
<title>Ma premiere page XHTML avec facelets</title>
</head>
<body>
<f:view>
<h:outputText value="mon menu"/>
<mj:menu />
</f:view>
</body>
</html> |
à l'execution tomcat m'affiche le message"mon menu" mais il n'affiche pas le menu.
la console eclipse affiche
Code:
1 2 3 4 5
|
4 avr. 2008 00:04:12 org.apache.tomcat.util.digester.SetPropertiesRule begin
ATTENTION: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:DynamicMenu' did not find a matching property.
4 avr. 2008 00:04:12 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.6.0_05\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jre1.6.0_05\bin\client;C:\Program Files\Java\jre1.6.0_05\bin;C:\jdk5\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\jdk1.5\bin;C:\ant\bin; |
:merci: