Bom dia pessoal,
estou rachando a cabeça aqui desde ontem e não sei o por que que não está funcionando o meu p:selectOneMenu, o problema é que tenho um quase identico, e funciona normal…
Meu p:selectOneMenu:
<p:selectOneMenu value="#{produtosBean.tabela}" converter="converterTabela">
<f:selectItem itemLabel="Selecione" />
<f:selectItems value="#{produtosBean.tabelas}" var="t" itemValue="#{t}" itemLabel="#{t.cli_id != NULL ? 'Cliente:' : 'Estado:'} #{t.cli_id != NULL ? t.cli_id.cli_razao : t.est_id.est_nome}" />
<p:ajax listener="#{produtosBean.atualizaTabela}" event="change" update=":detalhesProduto:panelTabela" />
</p:selectOneMenu>
Meu converterTabela:
[code]@FacesConverter(value = “converterTabela”)
public class ConverterTabela implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value != null && !value.equals("")) {
TabelaDao tabelaDao = new TabelaDao();
return tabelaDao.getTabelaById(Long.valueOf(value));
}
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value instanceof Tabela) {
Tabela tab = (Tabela) value;
return String.valueOf(tab.getTab_id());
}
return "";
}
}[/code]
Meus métodos:
public void atualizaTabela(){
System.out.println("Atualizando tabela...");
}
public void setTabela(Tabela tabela) {
this.tabela = tabela;
System.out.println("Set tabela:" + tabela.getEst_id().getEst_nome());
}
Testes realizados:
1º Se eu seleciono um item no selectOneMenu, nem o atualizaTabela() e nem o setTabela() é acionado…
2º Se no converterTabela no metodo “public Object getAsObject” eu deixo só um return null; ele aciona o atualizarTabela()…
3º Eu já conferi que no converter onde busca o Objeto no meu banco (TabelaDao), ele realmente retorna um objeto do tipo (Tabela)…
Estou sem saber o que fazer… Nem imagino agora o que posso fazer para tentar arrumar…
Meu TabelaDao:
public Tabela getTabelaById(Long id) {
currentSession = HibernateUtil.getSessionFactory().getCurrentSession();
return (Tabela) currentSession.load(Tabela.class, id);
}
Obrigado a todos pela atenção!
Abraço!