Boa noite pessoal,
Estou tentando listar uma datatable após uma pesquisa. Quando clico em buscar, aparentemente realiza a busca, porém não aparece a tabela embaixo.
Segue abaixo XHTML, Bean e StackTrace. Grato pela ajuda!
XHTML
[code]
<h:head></h:head>
<h:form>
<p:panelGrid columns=“2”>
<f:facet name=“header”>BUSCAR TRECHO COMPRADOS</f:facet>
Data Inicial: <p:calendar value="#{UsuarioForm.inicioPesquisa}" id=“popupButtonCal” showOn=“button” pattern=“dd/MM/yyyy” required=“true” requiredMessage=“Escolha uma data” />
Data Final: <p:calendar value="#{UsuarioForm.finalPesquisa}" id=“popupButtonCal2” showOn=“button” pattern=“dd/MM/yyyy” required=“true” requiredMessage=“Escolha uma data” />
<f:facet name=“footer”>
<p:commandButton value=“Buscar” action="#{UsuarioForm.getTrechosComprados}" update=":tabela"></p:commandButton>
</f:facet>
</p:panelGrid>
</h:form>
<p:outputLabel id="tabela">
<p:dataTable value="#{UsuarioForm.trechosComprados}" var="trecho" rendered="#{VooForm.tabelaOk}" emptyMessage="Nenhum vôo encontrado!">
<p:column headerText="Vôo">
<h:outputText value="#{trecho.codigo}"></h:outputText>
</p:column>
<p:column headerText="Partida">
<h:outputText value="#{trecho.partida}">
<f:convertDateTime dateStyle="medium" type="both" pattern="dd/MM/yyyy hh:MM"></f:convertDateTime>
</h:outputText>
</p:column>
<p:column headerText="Preço">
<h:outputText value="#{trecho.preco}">
</h:outputText>
</p:column>
</p:dataTable>
</p:outputLabel>
[/code]
BEAN
[code]package forms;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.primefaces.model.SelectableDataModel;
import persistence.JPAResourceBean;
import entities.Aeroporto;
import entities.Promocao;
import entities.Usuario;
import entities.Voo;
@ManagedBean(name = “UsuarioForm” )
@ViewScoped
public class UsuarioForm {
private Usuario usuario = new Usuario();
private Voo trechoSelecionado;
private int quantidadePassagem = 1;
private double valorTotal = 0;
private List<Voo> trechosComprados;
private Date inicioPesquisa;
private Date finalPesquisa;
private boolean tabelaOk = false;
public boolean isTabelaOk() {
return tabelaOk;
}
public void setTabelaOk(boolean tabelaOk) {
this.tabelaOk = tabelaOk;
}
public Date getInicioPesquisa() {
return inicioPesquisa;
}
public void setInicioPesquisa(Date inicioPesquisa) {
this.inicioPesquisa = inicioPesquisa;
}
public Date getFinalPesquisa() {
return finalPesquisa;
}
public void setFinalPesquisa(Date finalPesquisa) {
this.finalPesquisa = finalPesquisa;
}
public double getValorTotal() {
return this.valorTotal = this.quantidadePassagem * this.trechoSelecionado.getPreco();
}
public void setValorTotal(double valorTotal) {
this.valorTotal = valorTotal;
}
public void setValorTotal(int valorTotal) {
this.valorTotal = valorTotal;
}
public int getQuantidadePassagem() {
return quantidadePassagem;
}
public void setQuantidadePassagem(int quantidadePassagem) {
this.quantidadePassagem = quantidadePassagem;
}
public Voo getTrechoSelecionado() {
return trechoSelecionado;
}
public void setTrechoSelecionado(Voo trechoSelecionado) {
this.trechoSelecionado = trechoSelecionado;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String cadastrarUsuario(Usuario usuario){
EntityManager em = JPAResourceBean.getEntityManager();
try{
em.getTransaction().begin();
em.persist(usuario);
em.getTransaction().commit();
em.close();
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
public String cadastrarPromocao(Promocao promocao){
EntityManager em = JPAResourceBean.getEntityManager();
try{
em.getTransaction().begin();
em.persist(promocao);
em.getTransaction().commit();
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
public String fazerLogin(){
Usuario usu = null;
EntityManager em = JPAResourceBean.getEntityManager();
String jpql = "Select u from Usuario u where u.cpf = :login and u.senha = :senha";
Query q = em.createQuery(jpql, Usuario.class);
usu = (Usuario)q.setParameter("login", usuario.getCpf())
.setParameter("senha", usuario.getSenha())
.getSingleResult();
em.close();
if (usu != null) {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("usuarioSessao", usu);
if (usu.isAdmin() == true)
return "adminPage";
else
return "usuarioPage";
} else {
return null;
}
}
public void comprarPassagem(){
Usuario u = (Usuario)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuarioSessao");
for (int i = 1; i < this.quantidadePassagem; i++) {
u.getVoos().add(trechoSelecionado);
}
EntityManager em = JPAResourceBean.getEntityManager();
em.getTransaction().begin();
em.merge(u);
em.getTransaction().commit();
em.close();
}
public List getTrechosComprados() {
Usuario u = (Usuario)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuarioSessao");
Date d = this.inicioPesquisa;
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
Date d2 = this.finalPesquisa;
Calendar c2 = Calendar.getInstance();
c.setTime(d);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
EntityManager em = JPAResourceBean.getEntityManager();
String jpql = "select v from Voo v, Usuario u where v.partida >= :dtInicio and v.partida <= :dtFinal and u.cpf = :cpf";
Query q = em.createQuery(jpql, Voo.class).
setParameter("dtInicio", c.getTime()).
setParameter("dtFinal", c2.getTime()).
setParameter("cpf", u.getCpf());
this.tabelaOk = true;
return this.trechosComprados = q.getResultList();
}
public void setTrechosComprados(List trechosComprados) {
this.trechosComprados = trechosComprados;
}
public String logout() {
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return “index”;
}
}[/code]
STACKTRACE
Hibernate:
select
usuario0_.cpf as cpf3_,
usuario0_.admin as admin3_,
usuario0_.email as email3_,
usuario0_.nome as nome3_,
usuario0_.senha as senha3_
from
Usuario usuario0_
where
usuario0_.cpf=?
and usuario0_.senha=? limit ?
Hibernate:
select
voo0_.codigo as codigo1_,
voo0_.capacidade as capacidade1_,
voo0_.destinoID as destinoID1_,
voo0_.modeloAviao as modeloAv4_1_,
voo0_.origemID as origemID1_,
voo0_.partida as partida1_,
voo0_.preco as preco1_,
voo0_.tempoVoo as tempoVoo1_
from
Voo voo0_ cross
join
Usuario usuario1_
where
voo0_.partida>=?
and voo0_.partida<=?
and usuario1_.cpf=?
Nov 30, 2013 1:34:59 AM com.sun.faces.context.ExternalContextImpl getMimeType
WARNING: JSF1091: No mime type could be found for file /[entities.Voo@65da878e, entities.Voo@4504ab26, entities.Voo@35806f30, entities.Voo@303d3c1, entities.jsp. To resolve this, add a mime-type mapping to the applications web.xml.
Nov 30, 2013 1:34:59 AM com.sun.faces.context.ExternalContextImpl getMimeType
WARNING: JSF1091: No mime type could be found for file /[entities.Voo@65da878e, entities.Voo@4504ab26, entities.Voo@35806f30, entities.Voo@303d3c1, entities.jsp. To resolve this, add a mime-type mapping to the applications web.xml.