E ai,
Pessoal estou com o seguinte problema, no me MB tenho um método para deletar um registro.
Se chamo ele direto com um p:commandButton ele funciona blz.
Mas se chamo um p:confirmDialog ele nem passa no método. Rodei com debug e pus um breakpoint no metódo e não chega lá.
O q pode ser?
Abaixo meus códigos.
O Delete da linha 42 chama o confirmDialog e neste o delete não executa
O delete da linha 43 chama o mb direto e ali deleta certinho.
XHTML
<?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: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">
<ui:decorate template="/temas/padrao.xhtml">
<ui:define name="centro">
<p:growl id="growl" showDetail="true" life="5000"/>
<h:form id="form1">
<p:tabView id="tabview" >
<p:tab id="tab1" title="Clientes/Fornecedores">
</p:tab>
<p:tab id="tab2" title="Bancos">
</p:tab>
<p:tab id="tab3" title="Categorias">
<p:dataTable var="cat" value="#{categoriasBean.listaCategorias}" rowKey="#{cat.categoriasPK.idCategorias}"
selection="#{categoriasBean.categoria}" selectionMode="single"
paginator="true" rows="10">
<p:column headerText="id">
<h:outputText value="#{cat.categoriasPK.idCategorias}"/>
</p:column>
<p:column headerText="usuario">
<h:outputText value="#{cat.categoriasPK.idUsuario}"/>
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{cat.descricao}"/>
</p:column>
<f:facet name="footer">
<p:commandButton id="newCat" value="Novo" action="#{categoriasBean.novo}" update=":dialogNew" oncomplete="dialNew.show()"/>
<p:commandButton id="editCat" value="Editar" update=":dialogUpdate" oncomplete="dialUpdate.show()"/>
<p:commandButton id="deleteCat" value="Remover" onclick="confirmDelete.show()"/>
<p:commandButton id="deleteCat2"
value="Remover Sem Conf"
action="#{categoriasBean.remover}"
onclick="return confirm('Tem certeza que deseja excluir?')"
update=":form1,:growl"/>
</f:facet>
</p:dataTable>
</p:tab>
</p:tabView>
</h:form>
<p:confirmDialog id="confDelete"
message="Excluir Registro?"
header="Exclusão"
severity="alert"
widgetVar="confirmDelete"
closable="false"
appendToBody="true">
<h:form>
<p:commandButton id="sim"
value="Sim"
update=":form1,:grow1"
oncomplete="confirmDelete.hide()"
action="#{categoriasBean.remover}"
process="@all"
ajax="false"
type="button"/>
<p:commandButton id="nao"
value="Não"
onclick="confirmDelete.hide()"
type="button"/>
</h:form>
</p:confirmDialog>
</ui:define>
</ui:decorate>
<p:dialog id="dialogNew" header="Categoria" widgetVar="dialNew" modal ="true">
<h:form id="formNew">
<p:panelGrid id="panel1" columns="2">
<h:outputText value="Descrição:"/>
<p:inputText value="#{categoriasBean.categoria.descricao}"/>
</p:panelGrid>
<p:commandButton value="Salvar" action="#{categoriasBean.salvar}" update=":form1,:growl" onsuccess="dialNew.hide()"/>
</h:form>
</p:dialog>
<p:dialog id="dialogUpdate" header="Categoria" widgetVar="dialUpdate" modal ="true">
<h:form id="formUpd" >
<p:panelGrid id="panel2" columns="2">
<h:outputText value="id"/>
<h:inputText value="#{categoriasBean.categoria.categoriasPK.idCategorias}" readonly="true"/>
<h:outputText value="Descrição:"/>
<p:inputText value="#{categoriasBean.categoria.descricao}"/>
</p:panelGrid>
<p:commandButton value="Salvar" action="#{categoriasBean.update}" update=":form1,:growl" onsuccess="dialUpdate.hide()"/>
</h:form>
</p:dialog>
<h:form id="formDel">
</h:form>
</html>
MB
@ManagedBean
@SessionScoped
public class CategoriasBean {
@EJB
CategoriasFacade facade = new CategoriasFacade();
Categorias categoria;// = new Categorias();
List<Categorias> listaCategorias;
public List<Categorias> getListaCategorias() {
//listaCategorias = facade.findAll();
listaCategorias = facade.categoriasUsuarioLogado();
return listaCategorias;
}
public void setListaCategorias(List<Categorias> listaCategorias) {
this.listaCategorias = listaCategorias;
}
public Categorias getCategoria() {
if (categoria == null) {
categoria = new Categorias();
categoria.setCategoriasPK(new CategoriasPK());
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
categoria.getCategoriasPK().setIdUsuario((Integer) session.getAttribute("idUsuario"));
}
return categoria;
}
public void setCategoria(Categorias categoria) {
this.categoria = categoria;
}
/**
* Creates a new instance of CategoriasBean
*/
public CategoriasBean() {
}
public String novo() {
categoria = new Categorias();
categoria.setCategoriasPK(new CategoriasPK());
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
categoria.getCategoriasPK().setIdUsuario((Integer) session.getAttribute("idUsuario"));
categoria.getCategoriasPK().setIdCategorias(facade.getMaxCodCategoria().intValue() + 1);
return null;
}
public String salvar() {
try {
facade.create(categoria);
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Salvo com sucesso", "");
FacesContext.getCurrentInstance().addMessage(null, message);
} catch (Exception e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao Salvar ", e.toString());
FacesContext.getCurrentInstance().addMessage(null, message);
}
return null;
}
public String update() {
try {
if (categoria == null) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Nenhum Registro Selecionado", "");
FacesContext.getCurrentInstance().addMessage(null, message);
} else {
facade.edit(categoria);
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Salvo com sucesso", "");
FacesContext.getCurrentInstance().addMessage(null, message);
}
} catch (Exception e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao Salvar ", e.toString());
FacesContext.getCurrentInstance().addMessage(null, message);
}
return null;
}
public String remover() {
try {
if (categoria == null) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Nenhum Registro Selecionado", "");
FacesContext.getCurrentInstance().addMessage(null, message);
} else {
facade.remove(categoria);
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Removido com sucesso", "");
FacesContext.getCurrentInstance().addMessage(null, message);
}
} catch (Exception e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao Remover registro ", e.toString());
FacesContext.getCurrentInstance().addMessage(null, message);
}
return null;
}
}
Abraço