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]
BMuniz
Fevereiro 9, 2011, 1:39pm
#3
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
mbgregh
Fevereiro 27, 2013, 1:48pm
#4
Era exatamente isso que eu tava precisando. Valeu gilvan.sfilho!