<h:form id="tabelaLivrosForm">
<p:dataTable id="tabelaLivros" value="#{livroBean.livros}" var="livro">
<f:facet name="header">Livros</f:facet>
<p:column headerText="Título" sortBy="#{livro.titulo}">
<h:outputText value="#{livro.titulo}"/>
</p:column>
<p:column headerText="ISBN" sortBy="#{livro.isbn}">
<h:outputText value="#{livro.isbn}"/>
</p:column>
<p:column headerText="Preço" sortBy="#{livro.preco}">
<h:outputText value="#{livro.preco}">
<f:convertNumber type="currency" pattern="R$ #0.00" currencySymbol="R$" locale="pt_BR"/>
</h:outputText>
</p:column>
<p:column headerText="Data" sortBy="#{livro.dataLancamento.time}">
<h:outputText value="#{livro.dataLancamento.time}">
<f:convertDateTime pattern="dd/MM/yyyy HH:mm" timeZone="America/Sao_Paulo"/>
</h:outputText>
</p:column>
<p:column headerText="Remover">
<h:commandLink value="Remover" action="#{livroBean.remove(livro)}"/>
</p:column>
<p:column headerText="Alterar">
<h:commandLink value="Alterar" action="#{livroBean.carrega(livro)}"/>
</p:column>
</p:dataTable>
</h:form>
private List<Livro> livros;
public List<Livro> getLivros(){
DAO<Livro> dao = new DAO<Livro>(Livro.class);
if(this.livros == null) {
this.livros = dao.listaTodos();
}
return this.livros;
}