problems with JSF 2.1 confirmDialog

0

I was able to implement the deletion of the record in a JSF page, but when I delete the record it does not ask for the confirmation screen, I can not understand why it is not working, but the line of code that asks for confirmation of the deletion is there, watch the page;

<ui:composition template="/WEB-INF/template/LayoutPadrao.xhtml"
    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" xmlns:o="http://omnifaces.org/ui">

    <ui:define name="titulo">Pesquisa Produto</ui:define>


    <ui:define name="corpo">

        <h:form id="frmPesquisaProduto">

            <h1>Novo Produto</h1>

            <p:messages autoUpdate="true" closable="true" />

            <p:toolbar style="margin-top: 20px">
                <p:toolbarGroup>
                    <p:commandButton value="Pesquisa"
                        action="#{pesquisaProdutoBean.pesquisa}" update="@form" />
                </p:toolbarGroup>
                <p:toolbarGroup align="right">
                    <p:button value="Novo" outcome="/produto/cadastro/CadastroProduto" />
                </p:toolbarGroup>
            </p:toolbar>

            <p:panelGrid columns="2" id="painel"
                style="width: 100%; margin-top: 20px" columnClasses="rotulo, campo">
                <p:outputLabel value="Nome do Produto" for="nomep" />
                <p:inputText id="nomep" size="60" maxlength="90"
                    value="#{pesquisaProdutoBean.filtro.nome}" />
            </p:panelGrid>


            <p:dataTable id="produtosTable"
                value="#{pesquisaProdutoBean.produtosFiltrados}" var="produto"
                style="margin-top: 20px" emptyMessage="Nenhum produto encontrado."
                rows="20" paginator="true" paginatorAlwaysVisible="false"
                paginatorPosition="bottom">
                <p:column headerText="Nome do Produto"
                    style="text-align: center; width: 100px">
                    <h:outputText value="#{produto.nomeproduto}" />
                </p:column>
                <p:column headerText="Imagem do Produto">
                    <h:outputText value="a imagem será ainda implementada" />
                </p:column>

                <p:column headerText="Valor do produto"
                    style="text-align: right; width: 120px">
                    <h:outputText value="#{produto.valorproduto}">
                        <f:convertNumber type="currency" />
                    </h:outputText>
                </p:column>
                <p:column headerText="Descrição do Produto"
                    style="text-align: center; width: 100px">
                    <h:outputText value="#{produto.descproduto}" />
                </p:column>
                <p:column style="width: 100px; text-align: center">
                    <p:button outcome="/produto/cadastro/CadastroProduto"
                        icon="ui-icon-pencil" title="Editar">
                        <f:param name="produto" value="#{produto.idproduto}" />
                    </p:button>


                    <p:commandButton icon="ui-icon-closethick" title="Excluir"
                        process="@this" update=":frmPesquisaProduto:produtosTable"
                        action="#{pesquisaProdutoBean.excluir}">

                        <f:setPropertyActionListener
                            target="#{pesquisaProdutoBean.produtoSelecionado}"
                            value="#{produto}" />

                        <p:confirmDialog header="Confirmation"
                            message="Tem certeza que deseja excluir o produto #{pesquisaProdutoBean.produtoSelecionado.nomeproduto} ?"
                            icon="ui-icon-alert" />

                    </p:commandButton>





                </p:column>
            </p:dataTable>


            <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
                <p:commandButton value="SIM" type="button"
                    styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
                <p:commandButton value="NÃO" type="button"
                    styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
            </p:confirmDialog>



        </h:form>
    </ui:define>
</ui:composition>

The piece of code in question is this:

                <p:confirmDialog header="Confirmation"
                    message="Tem certeza que deseja excluir o produto #{pesquisaProdutoBean.produtoSelecionado.nomeproduto} ?"
                    icon="ui-icon-alert" />

This above was supposed to work, but it is not working, is there another way to implement the delete confirmation screen?

    
asked by anonymous 14.12.2015 / 11:33

1 answer

2

There is yes, for example in the Primefaces show case, you need the tag confirm inside the commandButton of which it calls the deletion of the item and just below it inside the confirmDialog tag needs two commandButton to represent Yes and No

<h:form>           
    <p:commandButton value="Excluir" actionListener="#{pesquisaProdutoBean.excluir}" update="message">
        <p:confirm header="Confirmação" message="Tem certeza que deseja excluir o produto #{pesquisaProdutoBean.produtoSelecionado.nomeproduto} ?" icon="ui-icon-alert" />
    </p:commandButton>

    <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
        <p:commandButton value="Sim" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
        <p:commandButton value="Não" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
    </p:confirmDialog>
</h:form>

link

    
14.12.2015 / 14:48