Datatable Managed Bean e JSF

Boa noite,
Tenho uma aplicação JSF com uma datatable, preciso incluir itens de um banco de dados por hibernate nesta datatable. Eu devo fazer um list no managed bean? Como eu direciono o item selecionado para a tabela?

Sim. Eh isso mesmo. Em seu managed bean, voce cria uma estrutura do tipo lista, onde no componente do dataTable do JSF vc o vincula no atributo value. No mesmo componente exite um atributo denominado var onde voce define qualquer nome para representar a iteracao da lista para recuperar as informacoes e apresenta-las na tela.

Exemplo:

class MeuMBean {
  private List<MeuVO> listaVOs = new ArrayList<MeuVO>();

  //getters e setters
}

-- paginas xhtml/jsp
<h:form>
  <h:dataTable value="#{meuMBean.listaVOs}" var="meuVO">
    <h:column>
      <f:facet name="header">
        Nome
      </facet>
      <h:outputText value="#{meuVO.nome}" />
    </h:column>
  </h:dataTable>
</h:form>

Eh isso.

Abracos

Obrigado Alex,

Mas estou com um problema que a minha datatable nem está aparecendo na tela da pagina, não sei o que posso estar fazendo de errado.

segue minha datatable

                                <h:dataTable id= "items" value="#{vendaMB.listaLivro}" var="Livro" width="520px">
                                    <h:column id="colunaCod">
                                        <h:outputText id="livroCodigo" value="#{Livro.id}" />
                                    </h:column>
                                    <h:column id="colunaTitulo">
                                        <h:outputText id="tituloLabel" value="#{Livro.titulo}" />
                                    </h:column>
                                    <h:column id="colunaAutor">
                                        <h:outputText id="tituloA" value="#{Livro.autor}" />
                                    </h:column>
                                    <h:column id="colunaPreco">
                                            <h:outputText id="precoLabel" value="#{Livro.preco}" />
                                    </h:column>
                                </h:dataTable>

                            </rich:tab>
                        </rich:tabPanel>

segue meu Managed Bean:

import java.util.ArrayList;
import java.util.List;
import pbc.livraria.modelo.Livro;

public class VendaMB {

    private List<Livro> listaLivro = new ArrayList<Livro>();

    /** Creates a new instance of VendaMB */
    public VendaMB() {
    }

    public List<Livro> getListaLivro() {
        return listaLivro;
    }

    public void setListaLivro(List<Livro> listaLivro) {
        this.listaLivro = listaLivro;
    }


}

Abraço!

Como vai Cleber…

A questão do seu datatable não renderizar está justamente no MB…
Você precisa abastacer o List com algo… e não simplesmente com new ArrayList();

Ou vc removeu essa parte no post que nos enviou?

Abraços

Oi benigner…

Não, meu Managed Bean é só isto mesmo…

Abastecer ele você diz por exemplo, usar um método de consulta no banco de dados???

Obrigado!

Exatamente…

listaLivro = seuDAO.getLista();

ou definir a sua lista manualmente…

Livro livroAjax = new Livro();
livroAjax.setId(1);
livroAjax.setTitulo(“Ajax”);
livroAjax.setPreco(10.00);

listaLivro.add(livroAjax);

pessoal estou vendo jsf, e estou com um problema,
do fazendo um exemplo que estou usando SelectOneMenu e ,quanto selecionar o item e apertar em botao ,o item que selecionei va para uma dataTable;
Alguem pode me ajudar e fazer um exemplo para seguir
vlw

[quote=benigner]
Exatamente…

listaLivro = seuDAO.getLista();

ou definir a sua lista manualmente…

Livro livroAjax = new Livro();
livroAjax.setId(1);
livroAjax.setTitulo(“Ajax”);
livroAjax.setPreco(10.00);

listaLivro.add(livroAjax);[/quote]

Bom dia benigner!

Acredito que esteja postando no local errado, mas estou com um problema parecido e não estou conseguindo resolver, preciso listar dados entre uma certa faixa de idade mais o meu list esta listando tudo, segue o código abaixo.

[code]public List getListaMeses() {
ArrayList lista12 = new ArrayList(DAOGenerico.list(Cadastroanimal.class));
for (int i = 0; i < lista12.size(); i++) {
Cadastroanimal lista = (Cadastroanimal) lista12.get(i);
int mesesvida = Integer.parseInt(lista.getMesesVida());
if (mesesvida >= 0 && mesesvida <= 3) {
lista12.add(new Cadastroanimal(lista, lista.getRgd()));

        }    
    }    
    return lista12;    
}   [/code]