Boa noite. Pessoal já cheguei a fazer o controller e DAO funcionar perfeitamente, mas quando eu coloco no xhtml para renderizar o lazy simplemente não mostra dados nenhum. E não sei mais o que olhar.
Fico muito grato se me ajudarem.
segue o código:
<!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.prime.com.tr/ui">
<h:head>
<title>:: Tcc on-line ::</title>
<p:resources />
</h:head>
<f:view contentType="text/html">
<h:body>
<ui:composition template="template.xhtml">
<ui:define name="conteudo">
<p:messages />
<h:form id="listaProfessores" rendered="#{usuarioController.permissaoCurrente.incluir}" prependId="false">
<p:dataTable paginator="true" paginatorPosition="top" dynamic="true" lazy="true"
rows="2" paginatorTemplate="{CurrentPageReport}{PageLinks}"
var="objProf" value="#{professorController.lazy}" emptyMessage="Não foi encontrado registros" >
<p:column style="width: 60px;" headerText="Matrícula">
<h:outputText value="#{objProf.matricula}" />
</p:column>
<p:column headerText="Nome" >
<h:outputText value="#{objProf.nome}" />
</p:column>
<p:column style="width: 70px;">
<h:commandLink action="#{professorController.delete}" rendered="#{sessionScope.currentUser.pessoa.idPessoa != objProf.idProfessor and usuarioController.permissaoCurrente.excluir}" style="width: auto;" onclick="javascript:if (!confirm('Deseja excluir este professor #{objProf.nome} ?')) return false;">
<f:setPropertyActionListener target="#{professorController.professor}" value="#{objProf}" />
<h:graphicImage value="imagens/delete.png" style="border: none;" alt="Excluir"/>
</h:commandLink>
<h:commandLink rendered="#{sessionScope.currentUser.pessoa.idPessoa == objProf.idProfessor}" action="#{professorController.formProfessorEditar}" >
<f:setPropertyActionListener target="#{professorController.professor}" value="#{objProf}" />
<h:graphicImage value="imagens/folder_document.png" style="border: none;" alt="Editar"/>
</h:commandLink>
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</f:view>
</html>
Controller:
package tcc.br.com.controller;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.validator.ValidatorException;
import org.primefaces.model.LazyDataModel;
import tcc.br.com.dao.MunicipioDAO;
import tcc.br.com.dao.ProfessorDAO;
import tcc.br.com.model.AreaAtuacao;
import tcc.br.com.model.Municipio;
import tcc.br.com.model.Estado;
import tcc.br.com.model.Permissao;
import tcc.br.com.model.Pessoa;
import tcc.br.com.model.Professor;
import tcc.br.com.model.Telefone;
import tcc.br.com.model.Usuario;
import tcc.br.com.util.ExceptionDatabase;
import tcc.br.com.validator.ProfessorValidator;
import tcc.br.com.validator.TelefoneValidator;
/**
*
* @author Leslie Cardoso da Silva
*/
@ManagedBean(name="professorController")
@SessionScoped
public class ProfessorController implements Serializable {
private Professor professor;
private Municipio qryCidade;
private AreaAtuacao qryArea;
private Telefone telefone;
private List<Municipio> listaCidade;
private List<Professor> listaProfessor;
private List<Telefone> listaContato;
private List<AreaAtuacao> listaAreaProfessor;
private List<AreaAtuacao> listaArea;
private Integer ActiveTab;
private Estado qryEstado;
private LazyDataModel<Professor> lazy;
public LazyDataModel<Professor> getLazy() {
if (lazy == null) {
lazy = new LazyDataModel<Professor>() {
@Override
public List<Professor> load(int first, int pageSize, String string, boolean bln, Map<String, String> map) {
try {
ProfessorDAO pDAO = new ProfessorDAO();
List<Professor> ps = pDAO.listaProfessor(first,pageSize);
setListaProfessor(ps);
return ps;
} catch (ExceptionDatabase e) {
return null;
}
}
};
// lazy.setPageSize(10);
}
return lazy;
}
public void setLazy(LazyDataModel<Professor> lazy) {
this.lazy = lazy;
}
public Estado getQryEstado() {
if(qryEstado == null){
qryEstado = new Estado();
}
return qryEstado;
}
public void setQryEstado(Estado qryEstado) {
this.qryEstado = qryEstado;
}
...
DAO
package tcc.br.com.dao;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import tcc.br.com.model.AreaAtuacao;
import tcc.br.com.model.Pessoa;
import tcc.br.com.model.Professor;
import tcc.br.com.model.Telefone;
import tcc.br.com.model.Turma;
import tcc.br.com.model.Usuario;
import tcc.br.com.util.Conexao;
import tcc.br.com.util.ExceptionDatabase;
import tcc.br.com.util.ParseResultSetForObj;
/**
*
* @author Leslie Cardoso da Silva
* @since 12-02-2011
*/
public class ProfessorDAO {
public List<Professor> listaProfessor(Integer pg, Integer rows) throws ExceptionDatabase{
Conexao con = new Conexao();
List<Professor> list = new ArrayList<Professor>();
try
{
pg += 1;
con.open();
StringBuilder sql = new StringBuilder();
sql.append("SELECT id_pessoa, nome, email, cpf, data_nascimento, ");
sql.append("id_fisica, id_professor, matricula_funcional, logradouro,");
sql.append("complemento, bairro, numero, cep, id_municipio, nome_municipio,");
sql.append("id_estado, id_pessoa_endereco, nome_estado, sigla_estado ");
sql.append("FROM sigd.v_lista_professor ");
sql.append("ORDER BY nome ");
sql.append("LIMIT ? OFFSET ((?-1) * ?) ");
PreparedStatement ps = con.getPreparedStatement(sql.toString());
ps.setInt(1, rows);
ps.setInt(2, pg);
ps.setInt(3, rows);
ResultSet rsProfessor = ps.executeQuery();
ParseResultSetForObj parseObj = new ParseResultSetForObj();
while(rsProfessor.next()){
list.add((Professor) parseObj.convertRsForProfessor(rsProfessor, new Professor()));
}
return list;
}
catch (SQLException e) {
throw new ExceptionDatabase(e.getMessage());
}
catch (ExceptionDatabase e) {
throw new ExceptionDatabase(e.getMessage());
}
finally{
con.close();
}
}
...