Estou tendo dificuldade em atualizar via ajax um p:datatable. Já naveguei em vários fóruns e não consegui desvendar o problema. Quando faço um submit no p:commandbutton não atualiza a tabela via ajax. Segue o código, favor me ajudem.
managed bean / controller
@ManagedBean(name = “comissao”)
@ViewScoped
public class ComissaoBean {
//@ManagedProperty(value = "#{gerenciaComissao}")
private EntityManager gerenciaComissao;
private ContratosProcessado contrato = new ContratosProcessado();
private Lancamento lancamento = new Lancamento();
private Pessoa_Vinculada pessoa = new Pessoa_Vinculada();
private List<ContratosProcessado> contratos;
private List<Lancamento> lancamentos;
private List<Pessoa_Vinculada> pessoas;
private List<Pessoa_Vinculada> sugestoes;
private int aux = 0;
private String razao = null;
private boolean teste = true;
private String teste2 = null;
public List<ContratosProcessado> getContratos() {
if (this.contratos == null) {
RepContratos rep = new RepContratos(this.gerenciaComissao);
this.contratos = rep.buscaTodos();
}
return this.contratos;
}
public List<Lancamento> getLancamentos() {
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
this.gerenciaComissao = (EntityManager) FacesContext.getCurrentInstance().getApplication()
.getELResolver().getValue(elContext, null, "gerenciaComissao");
System.out.println(aux + " lancamentos");
if (this.lancamentos == null) {
RepLancamento rep = new RepLancamento(this.gerenciaComissao);
this.lancamentos = rep.buscaTodos(this.aux);
}
return this.lancamentos;
}
public List<Pessoa_Vinculada> completaRazao(String str) {
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
this.gerenciaComissao = (EntityManager) FacesContext.getCurrentInstance().getApplication()
.getELResolver().getValue(elContext, null, "gerenciaComissao");
RepPessoa rep = new RepPessoa(gerenciaComissao);
this.pessoas = rep.buscaTodos();
sugestoes = new ArrayList<Pessoa_Vinculada>();
for (Pessoa_Vinculada p : this.pessoas) {
if (p.getRazao().startsWith(str)) {
sugestoes.add(p);
// System.out.println(sugestoes.toString());
// aux2 = sugestoes.lastIndexOf(p);
// System.out.println(aux2);
this.razao = p.toString();
System.out.println(this.razao);
}
}
System.out.println(this.razao);
this.pessoas = rep.buscaId(this.razao);
for (Pessoa_Vinculada p : this.pessoas) {
aux = p.getPv_id();
System.out.println(aux);
if (aux != 0){
this.teste = true;
System.out.println(this.teste);
}
}
return sugestoes;
}
repositorio / dao tabela pessoa
public class RepPessoa {
private EntityManager gerenciaPessoa;
public RepPessoa(EntityManager gerenciaPessoa) {
this.gerenciaPessoa = gerenciaPessoa;
}
@SuppressWarnings("unchecked")
public List<Pessoa_Vinculada> buscaId(String str){
Query query = this.gerenciaPessoa.createNativeQuery("select * from dbo.Pessoa_Vinculada where pv_razao = '" + str + "'",Pessoa_Vinculada.class);
System.out.println("teste busca id" + str);
return query.getResultList();
}
public Pessoa_Vinculada buscaRazao(String str) {
System.out.println(str + "busca razao");
Pessoa_Vinculada pessoa = new Pessoa_Vinculada();
pessoa.setRazao(str);
return pessoa;
}
@SuppressWarnings("unchecked")
public List<Pessoa_Vinculada> buscaTodos() {
Query query = this.gerenciaPessoa.createNativeQuery("select * from dbo.Pessoa_Vinculada order by pv_razao", Pessoa_Vinculada.class);
return query.getResultList();
}
}
dao tabela lancamento
public class RepLancamento {
private EntityManager gerenciaLancamento;
public RepLancamento(EntityManager gerenciaLancamento) {
this.gerenciaLancamento = gerenciaLancamento;
}
@SuppressWarnings("unchecked")
public List<Lancamento> buscaTodos(int aux) {
Query query = this.gerenciaLancamento.createNativeQuery(
"select * from dbo.Lancamento where lasituacao is null and lacodcli = " + aux + "order by ladatavenc",
Lancamento.class);
return query.getResultList();
}
@SuppressWarnings("unchecked")
public List<Lancamento> lancaComissao() {
Query query = this.gerenciaLancamento.createNativeQuery("");
return query.getResultList();
}
}
view
<ui:composition template="/recursos/templates/template2.xhtml">
<ui:define name=“header”>
<h:form>
<h:outputLabel value=“Seja bem vindo, #{loginBean.usuario.nome}”
style=“right:5px;top:5px;font-size:14px;padding-right:10px” />
<h:commandLink styleClass=“sair” value=“sair”
action="#{loginBean.sair}" style=“font-size:14px” />
</h:form>
</ui:define>
<ui:define name=“content”>
<h:form>
<h:panelGrid columns=“3”>
<h:outputText value="#{msgs.razao}" />
<p:autoComplete value="#{comissao.pessoa}"
completeMethod="#{comissao.completaRazao}" var=“pessoa”
itemLabel="#{pessoa.razao}" itemValue="#{pessoa}"
converter=“pessoaConverter” />
<p:commandButton value=“procurar” update=":formtbl:tbl"
action="#{comissao.testaTabela}" />
</h:panelGrid>
<h:outputText value="Teste ajax" />
<h:inputText value="#{comissao.teste2}" size="10" />
<h:commandButton value="testa ajax">
<f:ajax event="click" render=":formulario:message" execute="@form" />
</h:commandButton>
<p:commandButton value="testa ajax" update=":formulario:message" />
</h:form>
<h:form id="formulario">
<h:outputText id="message" value="#{comissao.teste2}" />
</h:form>
<h:form id="formtbl">
<p:dataTable id="tbl" value="#{comissao.lancamentos}" var="com"
paginator="true" rows="10" style="font-size:14px">
<f:facet name="header">
<h:outputFormat value="Lançamentos pendentes" />
</f:facet>
<p:column>
<f:facet name="header">
<h:outputFormat value="Código" />
</f:facet>
<h:outputText id="cel1" value="#{com.lacodcli}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputFormat value="Dt. Lanc." />
</f:facet>
<h:outputText value="#{com.ladatalanc}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputFormat value="Valor Boleta" />
</f:facet>
<h:outputText value="#{com.lavalorant}">
<f:convertNumber type="currency" currencyCode="BRL" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputFormat value="Venc. Real" />
</f:facet>
<h:outputText value="#{com.ladatavenc}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputFormat value="Venc. Prorrogado" />
</f:facet>
<h:outputText value="#{com.ladtanist}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputFormat value="Data Pgto." />
</f:facet>
<h:outputText value="#{com.ladataquit}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
</p:dataTable>
</h:form>
</ui:define>
<ui:define name="footer">
Add your footer here or delete to use the default
</ui:define>
</ui:composition>