Olá pessoal, estou recorrendo a vcs pq já to ficando doido de tanto procurar o q está acontecendo.
Tenho uma página ajax com um form, mas dentro do form tem um p:dataTable e a baixo dele tem um alguns campos para alimentar esta tabela. O q está acontecendo é q no botão Adicionar é q eu quero enviar apenas os campos q estão de baixo do data table e atualizar o dataTable, mas na hora q vc aperta o botão não acontece nada, nenhum erro nada no console. Coloquei um System out no método q o botão chama, e constatei q o método n é chamado, então fiz um teste colocando no botão process="@none" e tirei o update="", ai retornou um erro de null pointer (normal ja q eu n enviei o objeto), percebendo isso, vejo q o problema é nos parâmetros process="" e update="". Pelo o q li na documentação os parâmetros passados estão corretos.
Obrigado.
O botão problematico
<p:commandButton value="Adicionar" actionListener="#{apartamentoBean.adicionarMorador()}" update="moradores" process="moradorNome,moradorIdentidade,moradorOrgExp,moradorNascimento,moradorTelefone" />
Bean
public void adicionarMorador() {
System.out.println("---> 1");
}
Página
<?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">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:form prependId="false" id="formSalvar">
<h:panelGroup layout="block" rendered="#{apartamentoBean.mostrarTelaSalvar()}">
<h:messages />
<div class="form-container">
<h3>Novo Apartamento</h3>
<h:inputText value="#{apartamentoBean.apartamento.idApartamento}" />
<table class="form">
<tr>
<td>Apto</td>
<td>Bloco</td>
<td>Tipo</td>
<td>Morador desde</td>
</tr>
<tr>
<td class="input-container" style="width: 70px;"><h:inputText class="input" value="#{apartamentoBean.apartamento.numero}" /></td>
<td class="input-container select-container">
<select class="select" name="bloco">
<option value="">Selecione...</option>
</select>
</td>
<td class="input-container select-container">
<h:selectOneMenu styleClass="select" value="#{apartamentoBean.apartamento.proprietario}">
<f:selectItem itemValue="0" itemLabel="Locatário" />
<f:selectItem itemValue="1" itemLabel="Proprietário" />
</h:selectOneMenu>
</td>
<td class="input-container">
<h:inputText styleClass="input" value="#{apartamentoBean.apartamento.dataEntrada}" />
</td>
</tr>
</table>
<h3 style="margin-top: 20px;">Moradores</h3>
<h:panelGroup layout="block" id="moradores">
<p:dataTable styleClass="tabela" var="morador" value="#{apartamentoBean.apartamento.moradorList}" style="margin-bottom: 20px;" emptyMessage="Nenhum Morador Cadastrado.">
<p:column headerText="Nome">
<h:outputText value="#{morador.nome}" />
</p:column>
<p:column headerText="Identidade">
<h:outputText value="#{morador.identidade}" />
</p:column>
<p:column headerText="Org. Exp.">
<h:outputText value="#{morador.orgaoExpedidor}" />
</p:column>
<p:column headerText="Nascimento">
<h:outputText value="#{morador.nascimento}" />
</p:column>
<p:column headerText="Telefone">
<h:outputText value="#{morador.telefone}" />
</p:column>
</p:dataTable>
<table class="form">
<tr>
<td>Nome</td>
<td>Identidade</td>
<td>Org. Exp.</td>
<td>Nascimento</td>
<td colspan="2">Telefone</td>
</tr>
<tr>
<td class="input-container"><h:inputText class="input" value="#{apartamentoBean.morador.nome}" id="moradorNome" /></td>
<td class="input-container" style="width: 100px;"><h:inputText class="input" value="#{apartamentoBean.morador.identidade}" id="moradorIdentidade" /></td>
<td class="input-container" style="width: 60px;"><h:inputText class="input" value="#{apartamentoBean.morador.orgaoExpedidor}" id="moradorOrgExp" /></td>
<td class="input-container small"><h:inputText class="input data" value="#{apartamentoBean.morador.nascimento}" id="moradorNascimento" /></td>
<td class="input-container" style="width: 100px;"><h:inputText class="input telefone" value="#{apartamentoBean.morador.telefone}" id="moradorTelefone" /></td>
<td class="input-container small" style="padding-right: 0;">
<p:commandButton value="Adicionar" actionListener="#{apartamentoBean.adicionarMorador()}" update="moradores" process="moradorNome,moradorIdentidade,moradorOrgExp,moradorNascimento,moradorTelefone" />
</td>
</tr>
</table>
</h:panelGroup>
</div>
<div class="form-buttons">
<p:commandButton actionListener="#{apartamentoBean.salvar()}" value="Salvar" update=":formListar,:formSalvar" style="margin-right: 10px;" />
<p:commandButton actionListener="#{apartamentoBean.voltar()}" value="Voltar" update=":formListar,:formSalvar" process="@this" />
</div>
</h:panelGroup>
</h:form>
</ui:composition>