Olá pessoal…
Estou postando aqui, porque realmente não encontrei a solução em lugar algum. Já estou 3 dias procurando. Já pesquisei no GOOGLE, aqui no FORUM GUJ e nada.
Já olhei no site http://www.primefaces.org/showcase-labs/ui/datatableSorting.jsf
porém, fiz exatamente igual… o dataTable funciona perfeitamente… porem, quando clica na coluna para ordenar, nada acontece. Apenas as setas da coluna que mudam de direção
alguem pode me ajudar? Obrigado!
Segue o código
[size=18]ordernar.xthml [/size]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form>
<p:dataTable id="dataTable" var="pess" value="#{pessoaBean.listaPessoas}" rowKey="p.codigo">
<p:column id="modelHeader" sortBy="#{pess.nome}">
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{pess.nome}" />
</p:column>
</p:dataTable>
</h:form>
</h:body>
</html>
[size=18]PessoaDAO.java [/size]
[code]
package dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import model.Pessoa;
[size=18] Pessoa.java[/size]
package model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="pessoas")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int codigo;
@Column(nullable=false, length=100)
private String nome;
public int getCodigo() {
return this.codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public class PessoaDAO extends DAO {
@SuppressWarnings("unchecked")
public List<Pessoa> exibir(){
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
Query q = em.createQuery("select p from Pessoa p");
em.getTransaction().commit();
return q.getResultList();
}finally{
//em.close();
}
}
}
[size=18] PessoaBean.java[/size]
package bean;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import dao.PessoaDAO;
import model.Pessoa;
@ManagedBean
@RequestScoped
public class PessoaBean {
private Pessoa pessoa = new Pessoa();
private Pessoa selecionaPessoa;
private DataModel<Pessoa> modelPessoa;
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Pessoa getSelecionaPessoa() {
return selecionaPessoa;
}
public void setSelecionaPessoa(Pessoa selecionaPessoa) {
this.selecionaPessoa = selecionaPessoa;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public DataModel getListaPessoas(){
PessoaDAO pessoaDAO = new PessoaDAO();
modelPessoa = new ListDataModel(pessoaDAO.exibir());
System.out.println("Executando getTodos()");
return modelPessoa;
}
}