Bom dia amigos, utilizava o struts e agora quero aprender JSF e já me deparei com a primeira dúvida:
Como listar dados em um select:
Seguem abaixo a jsp e a classe!
cadastrarPedido.jsf
<h:selectOneMenu value="" required="true">
<f:selectItem itemValue="" itemLabel="Selecione uma Quadra"/>
<f:selectItems value="#{login.listaDeQuadras}"/>
</h:selectOneMenu>
LoginAction
public class LoginAction {
private Usuario usuario;
private List<SelectItem> listaDeQuadras;
private String nrIdentidade;
private String deSenha;
public String validarLogin() {
UsuarioDAO usuarioDAO = new UsuarioDAO();
QuadraDAO quadraDAO = new QuadraDAO();
try {
usuario = usuarioDAO.getInstance().consultarUsuario(nrIdentidade, deSenha);
listaDeQuadras = quadraDAO.getInstance().listaDeQuadras();
if(usuario != null) {
return "sucesso";
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getNrIdentidade() {
return nrIdentidade;
}
public void setNrIdentidade(String nrIdentidade) {
this.nrIdentidade = nrIdentidade;
}
public String getDeSenha() {
return deSenha;
}
public void setDeSenha(String deSenha) {
this.deSenha = deSenha;
}
public List<SelectItem> getListaDeQuadras() {
return listaDeQuadras;
}
public void setListaDeQuadras(List<SelectItem> listaDeQuadras) {
this.listaDeQuadras = listaDeQuadras;
}
}
QuadraDAO
package br.mil.sisgped.dao;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.hibernate.Query;
import org.hibernate.Session;
import br.mil.sisgped.bean.Quadra;
import br.mil.sisgped.util.HibernateUtil;
public class QuadraDAO {
private static QuadraDAO quadraDAO;
public static QuadraDAO getInstance(){
if(quadraDAO == null) {
quadraDAO = new QuadraDAO();
}
return quadraDAO;
}
public void cadastrarQuadra(Quadra quadra){
Session sessao = HibernateUtil.getSession();
sessao.beginTransaction();
try {
sessao.save(quadra);
} catch (Exception e) {
e.printStackTrace();
}
}
public List<SelectItem> listaDeQuadras() {
Session sessao = HibernateUtil.getSession();
sessao.beginTransaction();
List<SelectItem> listaDeQuadras = null;
try {
String sql = "from Quadra";
Query query = sessao.createQuery(sql);
listaDeQuadras = (List<SelectItem>) query.list();
} catch (Exception e) {
e.printStackTrace();
}
return listaDeQuadras;
}
}
Erro retornado:
java.lang.ClassCastException: br.mil.sisgped.bean.Quadra cannot be cast to javax.faces.model.SelectItem
Aguardo Ajuda"
Obrigado