Pessoal, estou aqui novamente recorrendo a ajuda de vocês…
Estou tentando buscar o conteúdo de uma tabela e quero listar através do <h:dataTable> utilizando o DataModel do jsf.
Estou com o seguinte problema, na página xhtml onde contém o dataTable, não estou conseguindo acessar as variáveis de instancia da classe Categoria.
Vi alguns exemplos na internet utilizando DataModel dessa forma, porém no meu caso não está dando certo.
Segue meu meu código…
<rich:dataTable id="categoria" rows="10"
value="#{categoriaBean.todas}" var="cats">
<f:facet name="header">
<rich:columnGroup>
<h:column>
<h:outputText value="Nome" />
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<h:outputText value="#{cats.}"><!-- Aqui eu não consigo acessar os atributos da classe Categoria-->
</h:column>
<f:facet name="footer">
<rich:dataScroller pageIndexVar="pageIndex" pagesVar="pages">
<f:facet name="pages">
<h:outputText value="#{pageIndex}/#{pages}" />
</f:facet>
</rich:dataScroller>
</f:facet>
</rich:dataTable>
Método da classe CategoriaBean
public DataModel getTodas() throws EcommerceDAOException{
InterfaceCategoriaDao dao = new CategoriaDAO();
model = new ListDataModel(dao.categorias());
return model;
}
Método da classe CategoriaDAo
public List categorias() throws EcommerceDAOException {
PreparedStatement ps = null;
Connection con = null;
ResultSet rs = null;
try {
con = this.con;
ps = con.prepareStatement("select * from categoria");
rs = ps.executeQuery();
List<Categoria> list = new ArrayList<Categoria>();
while (rs.next()) {
String nome = rs.getString(1);
list.add(new Categoria(nome));
}
return list;
} catch (SQLException e) {
throw new EcommerceDAOException(e);
} finally {
ConnectionEcommerceFactory.close(con, ps, rs);
}
}