Erro datatable ao clicar no alterar

19/01/2012

0

Tenho uma aplicação com jsf 2.0 2 primefaces 3.0. Fiz um esquema de auto complete em um <p:autoComplete>
até aí esta noemual eu clico no botao pesquisar e beleza ele filtra, mas quando eu clico no botal alterar da este erro.

java.lang.NullPointerException
at financeiro.web.EntidadeBean.getListaPorNome(EntidadeBean.java:23)
ME parace ue ele chama novamente o metodo.

Veja o meu bean.
private Entidade selecionada = new Entidade();
private List<Entidade> lista = null;
private List<Entidade> listaPorNome = null;
private List<SelectItem> entidadeSelect;


public List<Entidade> getListaPorNome() {
if (this.selecionada.getNome() != null){
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN();
this.listaPorNome = entidadeRN.listarPorNome(contextoBean.getUsuarioLogado(),this.selecionada.getNome());
}
return listaPorNome;
}

public List<Entidade> completaNome(String query) {
List<Entidade> sugestoes = new ArrayList<Entidade>();
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN();
this.lista = entidadeRN.listar(contextoBean.getUsuarioLogado());
for(Entidade e : this.lista){
if(e.getNome().startsWith(query)){
sugestoes.add(e);
}
}

return sugestoes;
}
public List<SelectItem> getEntidadeSelect() {
if(this.entidadeSelect == null){
this.entidadeSelect = new ArrayList<SelectItem>();
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN();
List<Entidade> entidade = entidadeRN.listar(contextoBean.getUsuarioLogado());
SelectItem item = null;
for (Entidade enti : entidade){
item = new SelectItem(enti,enti.getApelido());
item.setEscape(false);
entidadeSelect.add(item);

}

}
return entidadeSelect;
}
public Entidade getselecionada() {
return this.selecionada;
}
public void setselecionada(Entidade selecionada) {
this.selecionada = selecionada;
}

public List<Entidade> getLista() {
if (this.lista == null){
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN();
this.lista = entidadeRN.listar(contextoBean.getUsuarioLogado());
}
return lista;
}
public void setLista(List<Entidade> lista) {
this.lista = lista;
}
public String editar() {
return /restrito/entidade;
}
public String novo(){
this.selecionada = new Entidade();
this.selecionada.setDataCadastro(new Date(System.currentTimeMillis()));
System.out.println(this.selecionada.getDataCadastro());
return /restrito/entidade;
}

-------------------------

Agora o xhtml

<h:form id=buscar>
<h:outputText value=Pequisa por Nome/>
<h:panelGrid columns=4>
<p:autoComplete size=50 value=#{entidadeBean.selecionada}
completeMethod=#{entidadeBean.completaNome} var=entidade itemLabel=#{entidade.nome}
itemValue=# converter=entidadeBuscaConverter>
</p:autoComplete>
<p:commandButton value=Pesquisar update=:listagem :buscar >
</p:commandButton>
<p:commandButton action=#{entidadeBean.novo} value=Novo ajax=false/>
</h:panelGrid>
</h:form>
<h:form id=listagem>
<p:dataTable
paginator=true
rows=5
paginatorTemplate=
rowsPerPageTemplate=5,10,15
value=#{entidadeBean.listaPorNome}
var=entidade
selectionMode=single
selection=#{entidadeBean.selecionada}
rowKey=#{entidade.codigo}>
<f:facet name=header>
Lista de Entidades
</f:facet>
<p:column style=width:10px sortBy=#{entidade.codigo}>
<f:facet name=header>Código</f:facet>
<h:outputText value=#{entidade.codigo}/>
</p:column>
<p:column style=width:200px sortBy=#{entidade.nome}>
<f:facet name=header>Nome</f:facet>
<h:outputText value=#{entidade.nome} />
</p:column>
<p:column style=width:10px>
<f:facet name=header>Manutenção</f:facet>
<p:commandLink action=#{entidadeBean.editar} title=Editar ajax=false>
<h:graphicImage library=imagens name=editar16.png/>
<f:setPropertyActionListener value=# target=#{entidadeBean.selecionada}/>
</p:commandLink>
<p:commandLink action=#{entidadeBean.excluir} update=:listagem title=Excluir onclick=if (!confirm(Confirma a exclusão do lançamento #{entidade.nome}?)) return false;>
<h:graphicImage library=imagens name=excluir16.png/>
<f:setPropertyActionListener target=#{entidadeBean.selecionada} value=# />
</p:commandLink>
</p:column>
<f:facet name=footer>
Total de registros : #{fn:length(entidadeBean.lista)}
</f:facet>
</p:dataTable>
</h:form>
Jose Boas

Jose Boas

Responder

Posts

19/01/2012

Josué Júnior

José, qual é o escopo do ManagedBean? Qual é a pilha de erro completa que esta aparecendo para você?
Responder

20/01/2012

Davi Costa

Cola o log de erro inteiro vai ficar mais fácil de te ajudar.
Muita atençao noi ciclo de vida do jsf ele vai entrar nos getters e setters do seu ManagedBean algumas vezes, vc em algumas situações precisa debugar entender o motivo do Nullpointer e tratar.
att Davi
Responder

20/01/2012

Jose Boas

Já consegui resolver.
Responder

01/02/2012

Dyego Carmo

Opa !

Conseguiste Resolver ?

Poderia fechar o chamado ?

Valeu !!!
Responder

01/02/2012

Jose Boas

Consegui sim , mas eu nunca consigo localizar onde fechar
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar