Olá galera, estou com um probleminha no meu congirmDialog.
Estou usando o primefaces 3.0 , estou usando um confirmDialog para fazer o cadastro de um funcionario, porém, sempre que eu atualizo a pág ou navego p/ outra página, aparece a caixa do dialog na tela.
Vamos ao código.
[size=18]Template: [/size]
[code]<?xml version="1.0" encoding="UTF-8" ?>
<title>Perfaço Comercio de Ferros</title>
<h:outputStylesheet name="style.css" library="css"></h:outputStylesheet>
</h:head>
<p:layoutUnit position="north" size="150" style="background: blue;" >
<h:graphicImage library="images" name="logo-perfaco.png" width="800" height="120" id="logoCompany" ></h:graphicImage>
</p:layoutUnit>
<p:layoutUnit position="center" header="Sistema">
<ui:insert name="conteudo"/>
<div id="rodape">
<h:form>
<p:dock itemWidth="50" >
<p:menuitem value="Compra" icon="/resources/images/carrinho-de-compras-icone.gif" url="index.xhtml"></p:menuitem>
<p:menuitem value="Venda" icon="/resources/images/caixa - icone.gif" url="#"></p:menuitem>
<p:menuitem value="Novo Cadastro" icon="/resources/images/icon-home-cadastrese.gif" url="cadastrarFuncionario.xhtml"></p:menuitem>
<p:menuitem value="Listar" icon="/resources/images/icone-listar.png"></p:menuitem>
<p:menuitem value="Consultar" icon="/resources/images/icone-busca.jpg"></p:menuitem>
<p:menuitem value="Consultar" icon="/resources/images/grafico.jpg"></p:menuitem>
</p:dock>
</h:form>
</div>
</p:layoutUnit>
<p:layoutUnit position="west" width="200" resizable="true" closable="false" collapsible="true" header="Menu">
<h:form>
<p:menu style="width:98%; font-size:12px;">
<p:submenu label="Agendamento">
<p:menuitem value="Busca de sucata"></p:menuitem>
<p:menuitem value="Entrefa de Mercadoria"></p:menuitem>
</p:submenu>
<p:submenu label="Funcionario">
<p:menuitem value="Folha de pagamento"></p:menuitem>
<p:menuitem value="Vales"></p:menuitem>
<p:menuitem value="Faltas"></p:menuitem>
<p:menuitem value="Hora Extra"></p:menuitem>
<p:menuitem value="Lembretes"></p:menuitem>
</p:submenu>
<p:submenu label="Administrativo">
<p:menuitem value="Fila de Caminhoneiros"></p:menuitem>
<p:menuitem value="Carretas na estrada"></p:menuitem>
<p:menuitem value="Cheques"></p:menuitem>
<p:menuitem value="Notas Fiscais"></p:menuitem>
</p:submenu>
</p:menu>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="east" size="300" resizable="true" closable="false" collapsible="true">
<p:accordionPanel multiple="true" activeIndex="0" autoHeight="false">
<p:tab title="Calendario">
<p:calendar mode="inline" navigator="none" locale="pt"></p:calendar>
</p:tab>
<p:tab title="Informações">
</p:tab>
<p:tab title="Feed de Noticias">
</p:tab>
</p:accordionPanel>
</p:layoutUnit>
</p:layout>
<p:growl id="growl" showDetail="true" sticky="true" />
<h:form id="formDialog" >
<p:confirmDialog id="confirmaCadastro" message="Os dados inseridos estão corretos? Deseja cadastrar esse funcionario?"
header="Confirmação" severity="alert" widgetVar="confirmaCadastro" visible="true">
<p:commandButton id="confirm" value="Sim" update="growl" oncomplete="confirmaCadastro.hide()" actionListener="#{funcionarioBean.cadastrar}" />
<p:commandButton id="decline" value="Não" onclick="confirmaCadastro.hide()" type="button" />
</p:confirmDialog>
</h:form>
[/code]
Como podem ver no template eu coloquei o confirmDialog fora do <p:layout> pois eu estava com um probleminha, a caixa de dialogo ficava travada atras da tela =).
Página de cadastro:
<?xml version="1.0" encoding="UTF-8" ?>
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/_template.xhtml">
<ui:define name="conteudo">
<h:form id="conteudo">
<p:panel header="Cadastrar Funcionario" >
<h:panelGrid columns="2">
<h:outputText value="Nome: "></h:outputText>
<p:inputText value="#{funcionarioBean.funci.nome}"></p:inputText>
<h:outputText value="Idade"></h:outputText>
<p:inputText value="#{funcionarioBean.funci.idade}"></p:inputText>
<h:outputText value="CPF: "></h:outputText>
<p:inputMask value="#{funcionarioBean.funci.cpf}" mask="999.999.999-99"></p:inputMask>
<h:outputText value="RG: "></h:outputText>
<p:inputMask mask="9.999.999"></p:inputMask>
<h:outputText value="Endereço: "></h:outputText>
<p:inputText value="#{funcionarioBean.funci.endereco}"></p:inputText>
<h:outputText value="Salário: "></h:outputText>
<p:inputText value="#{funcionarioBean.funci.salario}"></p:inputText>
<h:outputText value="Telefone: "></h:outputText>
<p:inputMask value="#{funcionarioBean.funci.telefone}" mask="(99)9999-9999"></p:inputMask>
<h:outputText value="Data de Admissão: "/>
<p:calendar pattern="dd/MM/yyyy" value="#{funcionarioBean.funci.dataAdmissao}"></p:calendar>
<h:outputText value="Data de Nascimento: "></h:outputText>
<p:calendar pattern="dd/MM/yyyy" value="#{funcionarioBean.funci.dataNascimento}"></p:calendar>
<p:commandButton value="Cadastrar" onclick="confirmaCadastro.show();"></p:commandButton>
</h:panelGrid>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
</html>
E uma outra pág que eu fiz só p/ testar a navegaçao.
[code]<?xml version="1.0" encoding="UTF-8" ?>
Login no Sistema
[/code]ManagedBean:
package com.perfaco.mb;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import com.perfaco.dao.DAO;
import com.perfaco.modelo.Funcionario;
@ManagedBean
@RequestScoped
public class FuncionarioBean {
private Funcionario funci = new Funcionario();
public void cadastrar(ActionEvent evt){
FacesContext context = FacesContext.getCurrentInstance();
DAO<Funcionario> dao = new DAO<Funcionario>(Funcionario.class);
dao.adiciona(funci);
context.addMessage(null, new FacesMessage("Sucesso", "Funcionario "+funci.getNome()+" adicionado com sucesso"));
System.out.println("Funcionario Adicionado com Sucesso");
this.funci= new Funcionario();
}
public Funcionario getFunci() {
return funci;
}
public void setFunci(Funcionario funci) {
this.funci = funci;
}
}