Criar barra de menus em sistema com JSF

Pessoal,

É o seguinte, quero ajude de vocês para saber como fazer uma barra de menus em um sistema com JSF, pode ser com Facelets também. Quero que a barra de ferramentas fique constate, sem sumir quando clicar no botão, e os formulários serem carregados abaixo do menu.

Qual a maneira mais prática de fazer isso?

Amigo, defina um template com facelets tendo como primeiro componente a barra de menu,
recomendo o p:menuBar do primefaces, ou o p:toolBar que da pra usar como menu também…

Desta forma basta utiliza esse template para todas as páginas.

Algo como…
template.xhtml

[code]<?xml version='1.0' encoding='UTF-8' ?>

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link type="text/css" rel="stylesheet" href="./css/skin.css"/>
    <title>Título</title>
</h:head>

<h:body>

    <h:form id="barraDeFerramentas">
        <p:toolbar>
            <p:toolbarGroup align="left">
                <p:menuButton value="Menu 1">
                    <p:menuitem value="Item de Menu 1" action="pagina1" ajax="false"/>
                    <p:menuitem value="Item de Menu 2" action="pagina2" ajax="false"/>
                </p:menuButton>
                <p:commandButton value="Menu 2" action="pagina3" ajax="false"/>
            </p:toolbarGroup>
        </p:toolbar>
    </h:form>

    <div><ui:insert name="Conteudo"> Aqui vai o conteudo </ui:insert></div>

</h:body>
[/code]

e a pagina que utiliza o template

clienteDeTemplate.xhtml

[code]<?xml version='1.0' encoding='UTF-8' ?>

<ui:composition xmlns:ui=“http://java.sun.com/jsf/facelets
template="./template.xhtml"
xmlns:h=“http://java.sun.com/jsf/html
xmlns:p=“http://primefaces.prime.com.tr/ui
xmlns:f=“http://java.sun.com/jsf/core”>

<ui:define name="Conteudo">

Conteúdo da página =)
</ui:define>

</ui:composition>[/code]

maurijava,

Bom o que o gilvan.sfilho falou é legal, caso você utilize richfaces eu te aconselho a criar um página com o menu e depois só adiciona com include no seu template.

Fica tipo assim

menu.jsp

<f:subview id="menu">
		<h:form>
		
			<rich:toolBar>
				<rich:dropDownMenu rendered="#{menuControler.perfiladmin}">
					<f:facet name="label"> 
	                    <h:panelGroup>
	                     <h:outputText value="Cliente"/>
	                    </h:panelGroup>
	                </f:facet>
	                 <rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Cliente/InsereCliente.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Cliente/InsereCliente.jsf">
                        	<h:outputText value="Insere Clientes"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
                	  <rich:menuSeparator id="cliente" />
                	 <rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Cliente/ListarClientes.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Cliente/ListarClientes.jsf">
                        	<h:outputText value="Listar Clientes"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
				</rich:dropDownMenu>
				
				<rich:dropDownMenu rendered="#{menuControler.perfiladmin}">
					<f:facet name="label"> 
	                    <h:panelGroup>
	                     <h:outputText value="Funcionário"/>
	                    </h:panelGroup>
	                </f:facet>
	                <rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Funcionario/InsereFuncionario.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Funcionario/InsereFuncionario.jsf">
                        	<h:outputText value="Insere Funcionário"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
                	  <rich:menuSeparator id="funcionario" />
                	<rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Funcionario/ListarFuncionario.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Funcionario/ListarFuncionario.jsf">
                        	<h:outputText value="Listar Funcionários"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
				</rich:dropDownMenu>
				
				<rich:dropDownMenu rendered="#{menuControler.perfiladmin}">
					<f:facet name="label"> 
	                    <h:panelGroup>
	                     <h:outputText value="Projeto"/>
	                    </h:panelGroup>
	                </f:facet>
	                <rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Projeto/InsereProjeto.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Projeto/InsereProjeto.jsf">
                        	<h:outputText value="Inserir Projeto"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
                	  <rich:menuSeparator id="projeto" />
                	<rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Projeto/ListarProjetos.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Projeto/ListarProjetos.jsf">
                        	<h:outputText value="Listar Projetos"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
				</rich:dropDownMenu>
				
				<rich:dropDownMenu rendered="#{menuControler.perfiladmin}">
					<f:facet name="label"> 
	                    <h:panelGroup>
	                     <h:outputText value="Tarefa"/>
	                    </h:panelGroup>
	                </f:facet>
	                <rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Tarefa/InsereTarefa.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Tarefa/InsereTarefa.jsf">
                        	<h:outputText value="Insere Tarefa"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
                	  <rich:menuSeparator id="tarefa" />
                	<rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Tarefa/ListarTarefas.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Tarefa/ListarTarefas.jsf">
                        	<h:outputText value="Listar Tarefas"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
				</rich:dropDownMenu>
				
				<rich:dropDownMenu>
					<f:facet name="label"> 
	                    <h:panelGroup>
	                     <h:outputText value="Registro"/>
	                    </h:panelGroup>
	                </f:facet>
	                <rich:menuItem rendered="#{menuControler.perfiladmin}" submitMode="none" onclick="#{menuControler.documentlocation}Registro/ListarRegistro.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Registro/ListarRegistro.jsf">
                        	<h:outputText value="Listar Registro"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
                	  <rich:menuSeparator id="registro" rendered="#{menuControler.perfiladmin}"/>
                	<rich:menuItem submitMode="none" onclick="#{menuControler.documentlocation}Registro/ListarTarefaFuncionario.jsf'" >
	                 	 <h:outputLink value="#{menuControler.url}Registro/ListarTarefaFuncionario.jsf">
                        	<h:outputText value="Registrar Ponto"></h:outputText>
                    	</h:outputLink>
                	</rich:menuItem>
				</rich:dropDownMenu>
			</rich:toolBar>
		</h:form>
</f:subview>

Na página que irá importar fica assim(ex.: no template):

<f:view>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Gestão Ponto - Deletar Tarefa</title>
</head>
<body>
		<jsp:include page="../Menu.jsp" flush="false">
			<jsp:param value="../Menu.jsp" name="menu"/>
		</jsp:include>
		<rich:panel>
			<f:facet name="header">
				<h:outputText>Deleção de Tarefas</h:outputText>
			</f:facet>
				<h:outputText value="#{tarefaControler.excessaodelete}"/>
		</rich:panel>
	</body>	
</html>  
</f:view>

[]'s

Era exatamente isso que eu tava precisando. Valeu gilvan.sfilho!