[Resolvido]Dúvida com DataModel JSF

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…

&lt;rich:dataTable id="categoria" rows="10"
					value="#{categoriaBean.todas}" var="cats"&gt;
					&lt;f:facet name="header"&gt;
						&lt;rich:columnGroup&gt;
							&lt;h:column&gt;
								&lt;h:outputText value="Nome" /&gt;
							&lt;/h:column&gt;
						&lt;/rich:columnGroup&gt;
					&lt;/f:facet&gt;
					&lt;h:column&gt;
						&lt;h:outputText value="#{cats.}"&gt;&lt;!-- Aqui eu não consigo acessar os atributos da classe Categoria--&gt;
					&lt;/h:column&gt;
					&lt;f:facet name="footer"&gt;
						&lt;rich:dataScroller pageIndexVar="pageIndex" pagesVar="pages"&gt;
							&lt;f:facet name="pages"&gt;
								&lt;h:outputText value="#{pageIndex}/#{pages}" /&gt;
							&lt;/f:facet&gt;
						&lt;/rich:dataScroller&gt;
					&lt;/f:facet&gt;
				&lt;/rich:dataTable&gt;

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&lt;Categoria&gt; list = new ArrayList&lt;Categoria&gt;();
			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);
		}

	}

Dá algum erro?

Não,

Mais se eu colocar assim:

&lt;h:column&gt;
		&lt;h:outputText value="#{cats.nome}"&gt;
&lt;/h:column&gt;

Na exibição da minha tabela ele vai listar "cats.nome " várias vezes, conforme quantos registros tiver na tabela do banco de dados.

A var cat não está acessando as variáveis de insitancia da classe Categoria e sim os médotodos do DataModel.

vc esta usando Tomcat? qual versão?

Opa,

Estou utilizando Jboss 7.

então cara… eu passei por isso mas não foi com jsf…
o problema era que minha definição no web.xml estava 2.3… mas acho que não é esse o seu caso…
mas… http://www.guj.com.br/java/202646-pq-el-nao-funciona-resolvido

No meu caso a definição no web.xml é 3.0…

Eu fiz o método para listar de outra forma, como abaixo…

	public List&lt;Categoria&gt; getCategorias() throws EcommerceDAOException {
		InterfaceCategoriaDao dao = new CategoriaDAO();
		this.categorias = dao.categorias();
		return this.categorias;
	}

Porém, gostaria de fazer com o DataModel para poder atualizar o registro selecionado, etc…

Quando vc vai importar um datamodel a primeira opcao nao eh de um javax.faces.datamodel. Se nao me engano eh do swing. Ja aconteceu comigo. Dai acontece isso q vc ta relatando. Confira se o datamodel eh do tipo certo.

Em relacao a nao mostrar os atributos de cats qndo vc utiliza a variavel, ele nao lista mesmo. Vc tem q saber os atributos.
No mais quando acontece de nao funcionar de forma inexplicavel, eh algum conflito de libs. Esse richfaces nao estava ate o inicio do ano, a ultima vez q olhei, compativel com jsf2.0. Eu uso o primefaces agora.

Bom dia,

Os imports que eu fiz foram esses:

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

Depois vou fazer mais almguns testes e qualquer novidade eu informo aqui.

Obrigado.

Pessoal, Bom dia…

Eu estava fazendo algo de errado, revisei o meu código fonte e testei novamente e agora deu certo.

Obrigado a todos pela ajuda.