1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Primefaces - Update em um composite

Boa tarde.

Estou com problemas em atualizar um dialog, quando utilizo um componente composite que criei.. ele não atualiza o form que esta dentro do dialog. Se chamar o dialog por commandButton. faz correto. Mas se utilizo meu composite.. que tem o botão dentro. não faz o update.

Assim funciona:


                                    <p:commandButton id='editando'
                                        onclick="PF('cadastroMantDialog').show()"
                                        actionListener="#{mantenedorBean.procurar(mantenedor.id)}"
                                        update=":frmCadastro:panelDados" >

                                    </p:commandButton>

Assim não:

<botoes:edit id="edit"
                                        onclick="PF('cadastroMantDialog').show()"
                                        actionListener="#{mantenedorBean.procurar(mantenedor.id)}"
                                        update=":frmCadastro:panelDados" 
                                        >
                                    </botoes:edit>

Meu Composite:

<!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:f="http://java.sun.com/jsf/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:composite="http://java.sun.com/jsf/composite"
    xmlns:cc="http://java.sun.com/jsf/core">
<head>
<title></title>
</head>
<body>

    <composite:interface>
        <composite:attribute name="onclick" />
        <composite:attribute name="actionListener"
            method-signature="void actionListener(javax.faces.event.ActionEvent)" />
    </composite:interface>

    <composite:implementation>
        <p:commandButton icon="ui ui-icon-pencil" title="Editar"
            ajax="true"
            onclick="#{cc.attrs.onclick}" type="button"
            actionListener="#{cc.attrs.actionListener}">
        </p:commandButton>

    </composite:implementation>

</body>
</html>

Parte do Dialog:

<!-- EDITA MANTENEDOR DIALOG -->
                    <p:dialog header="Mantenedor - Atualizar" id="cadastroMant"
                        widgetVar="cadastroMantDialog" modal="true" showEffect="slide"
                        hideEffect="slide" update="@all" resizable="false">
                        <h:form id="frmCadastro" prependId="false">
                            <p:messages id="messages" autoUpdate="true" closable="true" />
                            <p:focus for="nome"></p:focus>
                            <p:panelGrid id="panelDados" columns="2" style=" margin-top: 3px"
                                columnClasses="Wid20 Wid60">
                                <p:outputLabel value="Código" for="id"
                                    styleClass="Fright MarTop10" />
                                <p:inputText id="id" size="10" maxlength="20"
                                    styleClass="MarTop10" value="#{mantenedorBean.mantenedor.id}"
                                    readonly="true" disabled="true" />

                                <p:outputLabel value="Nome" for="nome"
                                    styleClass="Fright MarTop5" />
                                <p:inputText id="nome" styleClass="Wid100 MarTop5"
                                    required="true"
                                    requiredMessage="O nome do mantenedor é obrigatório!"
                                    value="#{mantenedorBean.mantenedor.nome}" />

                                <p:outputLabel value="Referência" for="referencia"
                                    styleClass="Fright MarTop5 MarBot10" />
                                <p:inputText id="referencia" maxlength="20" required="true"
                                    styleClass="MarTop5 MarBot10"
                                    requiredMessage="A referência é obrigatória!"
                                    value="#{mantenedorBean.mantenedor.referencia}" />

                            </p:panelGrid>
                            <div style="margin-top: 3px; float: right;">
                                <p:toolbarGroup>
                                    <p:commandButton type="submit" ajax="true"
                                        style=" margin-right: 3px;" value="Salvar" id="botaoSalvar"
                                        oncomplete="closeDialogIfSuccess(xhr, status, args, dialogWidget, 'dialogId')"
                                        actionListener="#{mantenedorBean.salvar()}" />
                                </p:toolbarGroup>
                                <p:toolbarGroup align="right">
                                    <p:button value="Voltar"
                                        onclick="PF('cadastroMantDialog').hide()" />
                                </p:toolbarGroup>
                            </div>
                        </h:form>
                    </p:dialog>

Afinal.. como fazer um update em um composite, com dialog.

Grato pela ajuda

  • você pode atualizar um atributo pelo bean com o faces-context ex: FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("local");

    Paulo Henrique Diniz Dias   11 de mai de 2015
  • Funcionou para que eu queria Obrigado Paulo

    Rodrigo Cristo Führ   12 de mai de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags primefaces web java-ee ou faça a sua própria pergunta.