Popular selectOneMenu com classe enum
20/01/2018
0
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)