dataTable

Pessoal,

Por favor me ajudem, não sei mais oq fazer. Tenho um dataTable que lista vazio, ex: se eu tiver 3 inserções no banco ele lista as 3 mas vazio. Já andei olhando esta tudo vindo corretinho, ja olhei até as configurações dos xml´s.

Segue minha classe utilitaria:

[code]public class HibernateUtility {

private static SessionFactory sessionFactory;
private static Session session;

static {
	try {
		sessionFactory = new AnnotationConfiguration().configure(
				"/hibernate.cfg.xml").buildSessionFactory();
	} catch (Exception e) {
		e.printStackTrace();
		sessionFactory = null;
	}
}

public static Session getSession() {
	return session = sessionFactory.openSession();
}

}[/code]

Meu método que busca a lista do banco:

public List<T> listar() { List<T> objects = null; try { Session session = HibernateUtility.getSession(); @SuppressWarnings("unused") Transaction tx = session.beginTransaction(); Query select = session.createQuery("Select u from Usuario u"); objects = select.list(); session.close(); System.out.println("\nNAO LANCOU EXCECAO!!!"); } catch (HibernateException he) { System.out.println("LANCOU EXCECAO!!!"); he.printStackTrace(); } return objects; }

Meu método Managed Bean:

[code]public class UsuarioBean {

private Usuario usuario;
private Endereco endereco;
private Login login;
@SuppressWarnings("unchecked")
private UsuarioDAOImpl usuarioDaoImpl;
@SuppressWarnings("unused")
private String resultado;
private List<Usuario> usuarios;

//getrs e setres

@SuppressWarnings("unchecked")
public List<Usuario> getUsuarios() {
	usuarios = new ArrayList<Usuario>();
	usuarios = usuarioDaoImpl.listar();
	return usuarios;
}

}[/code]

E por fim meu dataTAble:

<rich:dataTable value="#{usuarioBean.usuarios}" var="usuario" onRowMouseOver="this.style.backgroundColor='#F8F8F8'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" rowClasses="cur"> <rich:column> <f:facet name="header">Id</f:facet> <h:outputText value="#{usuario.id}" /> </rich:column> <rich:column> <f:facet name="header">Nome</f:facet> <h:outputText value="#{usuario.nome}" /> </rich:column> <rich:column> <f:facet name="header">Login</f:facet> <h:outputText value="#{usuario.login.nomeLogin}" /> </rich:column> </rich:dataTable>

Novamente ficaria muito grato se alguem pudesse ajudar.

Esta faltando instanciar o DataModel no usuarioBean:

[code]
 public class UsuarioBean {   

private Usuario usuario;   
private Endereco endereco;   
private Login login;   
@SuppressWarnings("unchecked")   
private UsuarioDAOImpl usuarioDaoImpl;   
@SuppressWarnings("unused")   
private String resultado;   
private List<Usuario> usuarios;   
private DataModel modelo;
//getrs e setres   

@SuppressWarnings("unchecked")   
public DataModel  getUsuarios() {   
    usuarios = new ArrayList<Usuario>();   
    modelo=new ListDataModel(usuarioDaoImpl.listar()); 
    return modelo;   
}   

}
[/code]
O metódo que é chamdo para renderizar DataTable deve retornar um ListModel não um arraylist.
Caso não dê certo por favor posta ai.

[/code]

Continuo com o mesmo problema.

Segue meu bean modificado:

[code]public class UsuarioBean {

private Usuario usuario;
private Endereco endereco;
private Login login;
@SuppressWarnings("unchecked")
private UsuarioDAOImpl usuarioDaoImpl;
@SuppressWarnings("unused")
private String resultado;
private Collection<Usuario> usuarios;
private DataModel modelo;

//getrs e setrs


@SuppressWarnings("unchecked")
public DataModel getUsuarios() {
	usuarios = new ArrayList<Usuario>();
	modelo = new ListDataModel(usuarioDaoImpl.listar());
	return modelo;
}

}[/code]

Meu datatable:

[code]
<rich:dataTable value="#{usuarioBean.model}" var=“usuario”
onRowMouseOver=“this.style.backgroundColor=’#F8F8F8’”
onRowMouseOut=“this.style.backgroundColor=’#{a4jSkin.tableBackgroundColor}’”
rowClasses=“cur”>
rich:column
<f:facet name=“header”>Id</f:facet>
<h:outputText value="#{usuario.id}" />
</rich:column>
rich:column
<f:facet name=“header”>Nome</f:facet>
<h:outputText value="#{usuario.nome}" />
</rich:column>

</rich:dataTable>[/code]

No dataTable o value está errado, deveria ser “#{usuarioBean.modelo}”

Tava correto, eu tirei a letra “o” sem querer. O problema persiste…

Na sua datable tinha que ser :

rich:dataTable value="#{usuarioBean.usuarios}" var="usuario" .
Agora vai dar certo do outro jeito vc estava chamando
um atributo null para carregar a tabela.

Sem sucesso…

=(

Posta o código ai dos import, por favor??
Vc pode ter importado um DataModel de uma pacote errado.

São esses:

import javax.faces.model.DataModel; import javax.faces.model.ListDataModel;

Em tava tentando com collection e veja o que exibe no console:

[quote]1
Anderson
Cristo
anderson

2
Anderson
Cristo
anderson

3
Anderson
Cristo
anderson
------------------------------------------------------[/quote]

Onde trabalhava implementavamos com Collection mas utilizavamos JPA aqui estou utilizando Hibernate/JPA.