Bom dia!
Estou desenvolvendo um projeto com o primefaces, ele está funcionando normalmente.
Deixe-me descrever o problema:
Se eu não logar o menu funciona normalmente, mas quando logo ele não funciona no primeiro click. Depois que clico a segunda vez ele volta a funcionar belezinha!
Os itens do menu chamam um @ManagedBean só para redirecionar a página.
[code]
<p:submenu label=“Aluno” icon=“ui-icon-document”>
<p:menuitem value=“Solicitar Matrícula” actionListener="#{menuControle.alunoAdmin}" />
<p:separator />
<p:menuitem value=“Consultar Matrícula” actionListener="#{menuControle.consultarAlunoAdmin}" />
</p:submenu> [/code]
A Classe ela possui mais métodos com a mesma função, porem não coloquei para não ficar muito grande:
@ManagedBean
@SessionScoped
public class MenuControle{
public void consultarAlunoAdmin(ActionEvent actionEvent) {
try {
FacesContext
.getCurrentInstance()
.getExternalContext()
.redirect(
"/MatriculaOnline/pages/protected/admin/normal/pesquisarAluno.xhtml");
} catch (Exception e) {
e.printStackTrace();
}
}
***
Alguem sabe o pq isso acontece?
Sou novo no desenvolvimento e não sei o pq está acontecendo isso. Será q é pq o objeto não está inicializado e ao clicar a primeira vez ele inicializa? Ou estou falando besteira?hehe
Há e estou trabalhando com sessão!
Você tem forms aninhados ?
Olha todos seguem esse “padrão”, não estão aninhados.
[code]
<?xml version='1.0' encoding='UTF-8' ?>
<h:head>
Escola
</h:head>
<h:body>
<ui:include src="/pages/protected/admin/menu/menu.xhtml" />
<h:form>
<p:panel header=“Cadastro”>
<h:panelGrid id="grid" columns="3" style="margin-bottom:10px"
cellspacing="10">
<h:outputLabel for="nomeEscola" value="Escola:" />
<h:inputText id="nomeEscola" value="#{escolaControle.escola.nome}"
maxlength="50" size="50" required="true"
requiredMessage="Campo Aluno é Obrigatório." />
<p:message for="nomeEscola" />
<h:outputLabel for="inep" value="Inep:" />
<h:inputText id="inep" value="#{escolaControle.escola.inep}"
maxlength="50" size="50" required="true"
requiredMessage="Campo Mãe é Obrigatório." />
<p:message for="inep" numeric="true"/>
<h:outputLabel for="bairroEscola" value="Bairro:" />
<h:inputText id="bairroEscola" value="#{escolaControle.escola.bairro}"
maxlength="50" size="50" required="true"
requiredMessage="Campo Responsável é Obrigatório." />
<p:message for="bairroEscola" />
<br />
<p:commandButton value="Confirmar"
actionListener="#{escolaControle.cadastrarEscola}" />
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
[/code]
Menu
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<p:menubar autoDisplay="true" autoSubmenuDisplay="true">
<p:submenu label="Aluno" icon="ui-icon-document">
<p:menuitem value="Solicitar Matrícula" actionListener="#{menuControle.alunoAdmin}" />
<p:separator />
<p:menuitem value="Consultar Matrícula" actionListener="#{menuControle.consultarAlunoAdmin}" />
</p:submenu>
<p:submenu label="Escola" icon="ui-icon-document">
<p:menuitem value="Cadastar Escola" actionListener="#{menuControle.cadastrarEscola}" />
<p:separator />
<p:menuitem value="Alterar Escola" actionListener="#{menuControle.alterarEscola}" />
</p:submenu>
<p:submenu label="Composicao" icon="ui-icon-document">
<p:menuitem value="Cadastar composicao" actionListener="#{menuControle.cadastrarComposicao}" />
<p:separator />
<p:menuitem value="Alterar Composicao" actionListener="#{menuControle.alterarComposicao}" />
</p:submenu>
<p:submenu label="Usuario" icon="ui-icon-document">
<p:menuitem value="Cadastar usuario" actionListener="#{menuControle.cadastrarUsuario}" />
<p:separator />
</p:submenu>
</p:menubar>
</h:form>
</h:body>
</html>
Particularmente uso de maneira diferente nos includes. Neles, faço o seguinte:
[code]<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.org/ui”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:h=“http://java.sun.com/jsf/html”>[/code]
Veja se isso não influencia no seu caso.
[quote=edudebom]Particularmente uso de maneira diferente nos includes. Neles, faço o seguinte:
[code]<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.org/ui”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:h=“http://java.sun.com/jsf/html”>[/code]
Veja se isso não influencia no seu caso.[/quote]
Vlw pela resposta, mas não funcionou.