Segue o codigo , no lugar do command button excluir gostaria de por um confirm dialog , mais nao consigui seguindo o modelo do primefaces/showcase.
[code]<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition template="/templates/principal.xhtml"
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:define name="title">
Listagem de Carros
</ui:define>
<ui:define name="center">
<h:form>
<p:growl id="growl" showDetail="true" sticky="false" life="2000" />
<p:panel id="panel" header="Lista de carros" footer="Rodapé tabela">
<p:commandButton id="btnCadastro" value="Novo"
action="#{carroMB.doNovoAction}" ajax="false" />
<p:dataTable id="tblCarro" value="#{carroMB.listaCarro}"
var="carro" paginator="true" resizableColumns="true"
rows="5" selectionMode="single" rowKey="#{carro}" emptyMessage="Sem registros">
<p:column>
<f:facet name="header">Nome</f:facet>
<p:outputLabel value="#{carro.nome}"/>
</p:column>
<p:column>
<f:facet name="header">Ação</f:facet>
<p:commandButton id="btnEditar" value="Editar"
action="#{carroMB.doEditarAction}" ajax="false">
<f:setPropertyActionListener
target="#{carroMB.carro}" value="#{carro}" />
</p:commandButton>
<p:spacer height="10"/>
[color=red]<p:commandButton id="btnExcluir" value="Excluir"
action="#{carroMB.doExcluirAction}" ajax="false">
<f:setPropertyActionListener
target="#{carroMB.carro}" value="#{carro}" />
</p:commandButton>[/color]
</p:column>
</p:dataTable>
</p:panel>
</h:form>
</ui:define>
</ui:composition>[/code]
se alguem conseguir adaptar o trecho pra um confirm dialog… de qualquer forma obrigado!
No caso é esse trecho que tenho q passar para confirm dialog
[color=red]
<p:commandButton id=“btnExcluir” value=“Excluir"
action=”#{carroMB.doExcluirAction}" ajax=“false”>
<f:setPropertyActionListener
target="#{carroMB.carro}" value="#{carro}" />
</p:commandButton>
</p:column>
[/color]
alguem… pessoal concertz vcs ja usaram isso !
Tente algo assim:
[code]<p:commandButton value=“Excluir” onclick=“confirmaExclusao.show()”>
<p:confirmDialog id=“confirmaExclusao” message=“Voce deseja realmente excluir?” header=“Confirmação” severity=“alert” widgetVar=“confirmaExclusao”>
<p:commandButton id="confirmaBtn" value="Sim" oncomplete="confirmaExclusao.hide()"
action="#{carroMB.doExcluirAction}" >
<f:setPropertyActionListener
target="#{carroMB.carro}" value="#{carro}" />
</p:commandButton>
<p:commandButton id="recusaBtn" value="Não" onclick="confirmaExclusao.hide()"/>
</p:confirmDialog> [/code]
Resolvido.
felipe_gdr vc é o cara , muito obrigado de verdade , um botão com tamanho poder não pode ser dado ao usuário sem confirmação VLW!
O meu ta excluindo sempre o ultimo contato !
Como que vcs fizeram ???
Poderiam mostrar a Xhmtl toda XD
Bom dia pessoal, estou tentando implantar o código do felipe_gdr no meu projeto, mas
quando eu clico em salvar, acontece que a tela fica amarelada e sem ação.
Segue o meu código:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Clínica Odontológica</title>
</h:head>
<h:body>
<ui:composition template="./template.xhtml">
<ui:define name="content">
<center>
<h:form>
<p:fieldset legend="Formulário das Especialidades" >
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
</h:panelGrid>
</h:form>
</f:view>
<p:commandButton value="Salvar" onclick="confirmaInsercao.show();" >
<p:confirmDialog id="confirmaInsercao" message="Você deseja realmente salvar?" header="Confirmação" severity="alert" widgetVar="confirmaInsercao">
<p:commandButton value="Sim" oncomplete="confirmaInsercao.hide()"
action="#{especialidadesManagedBean.inserirE()}" >
<f:setPropertyActionListener
target="#{especialidadesManagedBean.especialidades}" value="#{especialidades}" />
</p:commandButton>
<p:commandButton value="Não" onclick="confirmaInsercao.hide();"/>
</p:confirmDialog>
</p:commandButton>
<center>
<p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
</center>
</p:fieldset>
</h:form>
</center>
</ui:define>
</ui:composition>
</h:body>
</html>
Você colocou o p:dialog dentro do p:command button. Tente tirar ele de dentro do p:command, coloque-o no finalzinho da página, por exemplo.
[quote=MarcolaLipe10]O meu ta excluindo sempre o ultimo contato !
Como que vcs fizeram ???
Poderiam mostrar a Xhmtl toda XD[/quote]
Conseguiu resolver Marco?
Sim sim …
Se alguem qr que eu disponibilizo eu coloco aqui !!! 
Bom dia pessoal!
Muito obrigado por responder felipe_gdr
Tentei como você sugeriu, mas continua na mesma,
O estranho que após clicar em salvar, a tela de confirmação
aparece, só que toda a tela fica amarelada e sem ação
E ai MarcolaLipe10, tudo bom?
Cara, se puder colocar seu código aqui, me ajudaria muito
Abraço.
Repara , que eu coloquei o Dialog abaixo do BODY …
Ta fora do corpo !
E a Bean , esta assim :
@ManagedBean(name=“fBean”)
@SessionScoped
[code] <p:dataTable id=“dataTable” var=“usuario” value="#{fBean.lista}"
sortMode=“multiple” rows=“7” paginator="true"
styleClass=“fonteMenor”>
<f:facet name="header">
<font color="blue" size="20px">Funcionários</font>
</f:facet>
<p:column headerText="Excluir" width="0">
<p:commandButton value="Excluir" onclick="confirmation.show()"
icon="ui-icon-trash">
<f:setPropertyActionListener target="#{fBean.usuario}"
value="#{usuario}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:body>
<p:dialog id=“confirmDialog” header=“Atenção !” severity="alert"
widgetVar=“confirmation” showEffect=“explode” hideEffect="bounce"
appendToBody=“true” modal=“true”>
<h:outputText value="Você deseja excluir esse Funcionário ?" />
<br />
<br />
<p:commandButton value="Sim" oncomplete="confirmation.hide()"
update="forme" action="#{fBean.excluir}" />
<p:commandButton id="decline" value="Ainda Não" onclick="confirmation.hide()" type="button" />
</p:dialog>[/code]
Obrigado pela ajuda felipe_gdr e MarcolaLipe10, mas ainda não consegui resolver 
Vou tentando aqui, caso de certo, posto aqui, obrigado pela ajuda.
Bom dia pessoal, realmente não consegui fazer funcionar a mensagem de confirmação do meu código,
gostaria da ajuda de vocês, segue o código :
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Clínica Odontológica</title>
</h:head>
<h:body>
<ui:composition template="./template.xhtml">
<ui:define name="content">
<center>
<h:form>
<p:fieldset legend="Formulário das Especialidades" >
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
</h:panelGrid>
</h:form>
</f:view>
<p:commandButton value="Salvar" onclick="confirmaInsercao.show();" >
<p:confirmDialog id="confirmaInsercao" message="Você deseja realmente salvar?" header="Confirmação" severity="alert" widgetVar="confirmaInsercao">
<p:commandButton value="Sim" oncomplete="confirmaInsercao.hide()"
action="#{especialidadesManagedBean.inserirE()}" rendered="true">
<f:setPropertyActionListener
target="#{especialidadesManagedBean.especialidades}" value="#{especialidades}" />
</p:commandButton>
<p:commandButton value="Não" onclick="confirmaInsercao.hide();"/>
</p:confirmDialog>
</p:commandButton>
<center>
<p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
</center>
</p:fieldset>
</h:form>
</center>
</ui:define>
</ui:composition>
</h:body>
</html>
Desde ja, muito obrigado.
Muito obrigado por ter respondido MarcolaLipe10!
Cara, deu quase certo, eu só queria que quando não houvesse nenhum dado inserido no formulário e clicasse no botão salvar,
aparecesse a mensagem pedindo para inserir igual está no formulário:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<f:view>
<h:head>
<title>Clínica Odontológica</title>
</h:head>
<h:body>
<ui:composition template="./template.xhtml">
<ui:define name="content">
<center>
<h:form>
<p:fieldset legend="Formulário das Especialidades" >
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
</h:panelGrid>
</h:form>
<p:commandButton value="Salvar" onclick="confirmaInsercao.show();" >
<p:dialog id="confirmaInsercao" header="Deseja realmente salvar?" widgetVar="confirmaInsercao" showEffect="fade" hideEffect="explode">
<p:commandButton value="Sim" oncomplete="confirmaInsercao.hide()"
action="#{especialidadesManagedBean.inserirE()}" rendered="true"/>
<p:commandButton value="Não" onclick="confirmaInsercao.hide();"/>
</p:dialog>
</p:commandButton>
<center>
<p:commandButton value="Limpar" ajax="true" immediate="true" type="reset"/>
</center>
</p:fieldset>
</h:form>
<h:form>
<p:panel header="Registro de Especialidades">
<input type="hidden" value="#{especialidadesManagedBean.recuperar()}" name="carregarEspecialidades"/>
<p:dataTable id="tbEspecialidades"
var="especialidadess" value="#{especialidadesManagedBean.especialidadess}"
emptyMessage="Não há registros."
paginator="true" rows="5">
<p:column headerText="Nome" filterBy="#{especialidadess.nome}">
<h:outputText value="#{especialidadess.nome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Alterar"/>
</f:facet>
<h:commandLink action="#{especialidadesManagedBean.alterarE()}">
<h:graphicImage width="56" height="56" value="/Imagens/editar.png" />
</h:commandLink>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<h:commandLink action="#{especialidadesManagedBean.removerE()}" >
<h:graphicImage width="56" height="56" value="/Imagens/excluir.png" />
</h:commandLink>
</p:column>
</p:dataTable>
<h:panelGrid columns="2">
<p:panel header="Exportar dados">
<h:commandLink>
<p:graphicImage id="tpdf" value="/Imagens/pdf.png" />
<p:dataExporter type="pdf" target="tbEspecialidades" fileName="Especialidades" />
</h:commandLink>
<p:tooltip for="tpdf" value="Exportar para pdf." showEffect="slide" hideEffect="fade" />
<h:commandLink>
<p:graphicImage id="txml" value="/Imagens/xml.png" />
<p:dataExporter type="xml" target="tbEspecialidades" fileName="Especialidades" />
</h:commandLink>
<p:tooltip for="txml" value="Exportar para xml." showEffect="slide" hideEffect="fade" />
</p:panel>
</h:panelGrid>
</p:panel>
</h:form>
</center>
</ui:define>
</ui:composition>
</h:body>
</f:view>
</html>
Olha o managedBean:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package managedBeans;
import entidades.Especialidades;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.ListDataModel;
import sessao.EspecialidadesFacade;
/**
*
* @author Gimenes
*/
@ManagedBean
@ViewScoped
public class especialidadesManagedBean implements java.io.Serializable{
@EJB
private EspecialidadesFacade especialidadesFacade;
private ListDataModel especialidadess;
public ListDataModel getEspecialidadess() {
return especialidadess;
}
public void setEspecialidadess(ListDataModel especialidadess) {
this.especialidadess = especialidadess;
}
private Especialidades especialidades;
public String inserirE(){
this.especialidadesFacade.create(especialidades);
return null;
}
public String alterarE(){
this.especialidadesFacade.edit(especialidades);
return null;
}
public String removerE(){
this.especialidadesFacade.remove(especialidades);
return null;
}
private void recuperarEspecialidades(){
this.especialidadess = new ListDataModel(especialidadesFacade.recuperarTodos());
}
public void recuperar(){
this.recuperarEspecialidades();
}
public Especialidades getEspecialidades() {
if(especialidades ==null){
especialidades = new Especialidades();
}
return especialidades;
}
public void setEspecialidades(Especialidades especialidades) {
this.especialidades = especialidades;
}
}
No mais está muito legal!
Ah, você saberia um método para que quando eu clico no botão alterar da dataTable, enviasse
os dados da linha para o formulário para serem alterados? Se não for pedir muito também,
gostaria de aprender a excluir os dados da dataTable pelo botão excluir da mesma.
Obrigado pela paciência!
Amigão nao entendi direito o que vc qr !!
Desculpa =(
Boa tarde MarcolaLipe10, blz?
Então, o que você me sugeriu antes deu certo, porém ficaria melhor
se o usuário clicasse em salvar com os campos vazios, ele retornaria
uma mensagem dizendo que o campo nome é obrigatório igual está
no formulário, segue o código:
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{especialidadesManagedBean.especialidades.nome}"
title="Nome" required="true" requiredMessage="O campo nome é obrigatório."/>
</h:panelGrid>
</h:form>
Agora sobre a dataTable, é um pouco mais complicado…
Na frente de cada registro da dataTable, tem os botões alterar e excluir.
O que eu queria que não estou conseguindo, é desenvolver métodos, no
caso do botão alterar, enviar os dados do registro para o campo formulário nome,
para depois serem alterado, e no caso do botão excluir, excluir o registro quando clicar
no botão excluir.
Se puder me dar uma direção sobre isso, ficaria muito grato.
Valeu pela força.
você qr alterar um componente e abrir dentro de um dialog um formulario para ele alterar ???
E para excluir é normal mano , so pedir para excluir xD