JSF 2.1 confirmDialog problems

Asked

Viewed 401 times

0

I was able to implement the deletion of record on a JSF page, but when deleting the record it doesn’t ask for the confirmation screen, I can’t understand, because it’s not working, but the line of code that asks for confirmation of the deletion is there, look at 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 is not working, there is another way to implement the delete confirmation screen?

  • Display any error messages? If you can catch the log of the exact moment you click to delete, post to help.

  • tries to take out the process="@this" from the delete button.

1 answer

2


There is, with example in the show case of Primefaces, it is necessary to tag confirm within the commandButton which makes the call for item deletion and just below within the tag confirmDialog needs two commandButton to represent the Yes and Not

<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>

http://www.primefaces.org/showcase/ui/overlay/confirmDialog.xhtml

  • only one remark, this p:confirm will only pick up depending on the version of the primefaces, the more suitable use the newer.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.