Popular selectOneMenu com classe enum
Fala Galera parece uma coisa boba mas to me batendo muito para fazer, não estou conseguindo Popular um selectOneMenu com os valores de um enum segue meus códigos
Enum:
package com.objetiva.pesquisa.models;
public enum Estados {
AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO,RR, SC, SP, SE, TO,
}
Bean:
@ManagedBean
@ViewScoped
public class CidadeBean {
private Cidade cidade = new Cidade();
private CidadeDAO dao = new CidadeDAO();
public Estados[] estados;
public Estados[] getEstados() {
return Estados.values();
}
public void setEstados() {
this.estados = Estados.values();
}
public List<Cidade> listarTodos() throws Exception{
List<Cidade>cidades = dao.listarTodos();
return cidades;
}
public Cidade selecionar(long id) throws Exception {
cidade = dao.selecionar(id);
return cidade;
}
public void inserir() throws Exception {
if(cidade != null)
dao.inserir(cidade);
else
throw new Exception();
}
public void atualizar() throws Exception {
dao.atualizar(cidade);
}
public void excluir() throws Exception {
dao.excluir(cidade.getIdCidade());
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
}
View:
<!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:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Inserir Cidade</title>
</h:head>
<h:body>
<h:form>
<p:panelGrid>
<p:outputLabel value="Cidade" />
<p:inputText value="#{cidadeBean.cidade.nome}" />
<br />
<p:outputLabel value="Estado" />
<p:selectOneMenu value="#{cidadeBean.cidade.uf}" id="estados">
<f:selectItem value="#{cidadeBean.estados}" />
</p:selectOneMenu>
</p:panelGrid>
</h:form>
</h:body>
</html>
Quem poderia dar uma força aí: ta retornando o seguinte erro:
java.lang.ClassCastException: [Lcom.objetiva.pesquisa.models.Estados; cannot be cast to javax.faces.model.SelectItem
Enum:
package com.objetiva.pesquisa.models;
public enum Estados {
AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO,RR, SC, SP, SE, TO,
}
Bean:
@ManagedBean
@ViewScoped
public class CidadeBean {
private Cidade cidade = new Cidade();
private CidadeDAO dao = new CidadeDAO();
public Estados[] estados;
public Estados[] getEstados() {
return Estados.values();
}
public void setEstados() {
this.estados = Estados.values();
}
public List<Cidade> listarTodos() throws Exception{
List<Cidade>cidades = dao.listarTodos();
return cidades;
}
public Cidade selecionar(long id) throws Exception {
cidade = dao.selecionar(id);
return cidade;
}
public void inserir() throws Exception {
if(cidade != null)
dao.inserir(cidade);
else
throw new Exception();
}
public void atualizar() throws Exception {
dao.atualizar(cidade);
}
public void excluir() throws Exception {
dao.excluir(cidade.getIdCidade());
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
}
View:
<!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:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Inserir Cidade</title>
</h:head>
<h:body>
<h:form>
<p:panelGrid>
<p:outputLabel value="Cidade" />
<p:inputText value="#{cidadeBean.cidade.nome}" />
<br />
<p:outputLabel value="Estado" />
<p:selectOneMenu value="#{cidadeBean.cidade.uf}" id="estados">
<f:selectItem value="#{cidadeBean.estados}" />
</p:selectOneMenu>
</p:panelGrid>
</h:form>
</h:body>
</html>
Quem poderia dar uma força aí: ta retornando o seguinte erro:
java.lang.ClassCastException: [Lcom.objetiva.pesquisa.models.Estados; cannot be cast to javax.faces.model.SelectItem
Allan Gaspar
Curtidas 0