Olá pessoal. Li todos os tópicos referidos ao tema em questão, porém nenhum deles resolveu meu problema. Estou usando o PrimeFaces e o problema ocorre quando tento atualizar os campos de cadastro ao abrir um formulário ou quando salvo as informações. Usei os IDs para identificar o form e o panelGrid, onde estão os campos de cadastro:
Se bem me lembro, caso o botão em questão esteja fora do h:form, ele não irá encontrar o id painel, por isso o erro.
A
appmoraes
Olá darlan_machado. Neste caso não tenho como utilizar dentro do form, pois a ação do botão é abrir um p:dialog, onde contém os campos de cadastro.
Porém, dentro do form do dialog, tenho yum botão Salvar que também inserir update para limpar os campos, mas sem êxito, pois apresenta o mesmo problema.
Obrigado por seu apoio.
Mike
Tem sim,
Coloca o botão dentro do form e adiciona o atributo process="@this"
Quando você faz uma requisição, toda a página vai junto, quando você usa o atributo process você decide o que quer enviar na requisição, no caso os campos serão ignorados.
A
appmoraes
Olá Mike. Neste caso não tenho como utilizar dentro do form, pois a ação do botão é abrir um p:dialog, onde contém os campos de cadastro.
Dentro do form tenho um botão Salvar que inserir o update para apresentar uma mensagem ao usuário, quando salvo as informações no BD. Se acrescentar “:formCadastro:painel” nele, passa a ocorrer o erro.
A
appmoraes
O form esta dentro de um dialog. O botão é para abrir este dialog:
Postando o código completo:
<ui:definename="conteudo"><h:form><p:messagesid="mensagem"/><p:panelheader="Cadastro de Instituições Financeiras"><!-- Botão de cadastros --><h3><p:commandButtonvalue="Nova Instituição"oncomplete="PF('dialogo_cadastrar').show();"actionListener="#{instituicaoBean.novo}"process="@this"update=":formCadastro:painel"/><!-- update="@(form)" --></h3><!-- Caixa de Diálogo cadastros --><p:dialogid="dialogo"header="Instituição - Cadastro"widgetVar="dialogo_cadastrar"draggable="false"resizable="false"modal="true"closable="false"><h:formid="formCadastro"><h4><h:panelGridid="painel"columns="2"><p:outputLabelvalue="Código"/><p:inputTextmaxlength="10"size="10"value="#{instituicaoBean.instituicao.codigo}"/><p:outputLabelvalue="Nome da Instituição"/><p:inputTextmaxlength="50"size="55"value="#{instituicaoBean.instituicao.nome}"/><p:outputLabelvalue="Ativo"/><p:selectBooleanCheckboxvalue="#{instituicaoBean.instituicao.ativo}"/></h:panelGrid><h:panelGridcolumns="3"><p:commandButtonvalue="Salvar"actionListener="#{instituicaoBean.salvar}"update=":mensagem"/><p:commandButtonvalue="Fechar"oncomplete="PF('dialogo_cadastrar').hide()"/></h:panelGrid></h4></h:form></p:dialog><!-- Painel de registros --><h1><p:dataTableemptyMessage="Nenhum registro localizado."paginator="true"value="#{instituicaoBean.instituicoes}"><p:columnheaderText="ID"></p:column><p:columnheaderText="Código"></p:column><p:columnheaderText="Nome da Instituição"></p:column></p:dataTable></h1></p:panel></h:form></ui:define>
</ui:composition>
Solucao aceita
Mike
Coloca o dialog fora do form
Dois form um dentro do outro da problema
A
appmoraes
Mike, é isso mesmo. Coloquei o Dialog fora do form e obtive êxito. Muito obrigado. Abs.
Mike
Postando o código todo sempre fica mais fácil.
Se o problema foi resolvido, considere marcar a minha resposta como Solução e coloca [RESOLVIDO] no nome do tópico.