Boa tarde, estou tentando puxar os nomes das variaveis enums para o meu combobox (tipo do curso) na pagina xhtml, através da classe BEAN. Porém o comando #{cursoBean} me parece não estar funcionando. Somente vejo na lista a opção “SELECIONE” e nada mais.
Criando um main no Bean para testar no compilador, eu consegui receber os enums (valores) que procurava: CORDAS, MADEIRAS, METAIS E PERCUSSÃO. Na página, esses nomes não aparecem.
Meu problema está nessa linha aqui:
<p:selectOneMenu value="#{cursoBean.curso.tipo}">
<f:selectItem itemLabel=":: Selecione ::" itemValue="#{null}" />
<f:selectItems value="#{CursoBean.tipos}" var="tipo"
itemLabel="#{tipo.label}" itemValue="#{tipo}" />
package escola.musica.bean;
import java.util.Arrays;
import java.util.List;
import javax.annotation.ManagedBean;
import javax.faces.bean.ViewScoped;
import escola.musica.modelo.Curso;
import escola.musica.modelo.TipoCurso;
@ManagedBean
public class CursoBean {
private Curso curso = new Curso();
private List<TipoCurso> tipos = Arrays.asList(TipoCurso.values());
public List<TipoCurso> getTipos() {
return tipos;
}
public void setTipos(List<TipoCurso> tipos) {
this.tipos = tipos;
}
public Curso getCurso() {
return curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
public static void main(String[] args) {
List<TipoCurso> tipos = Arrays.asList(TipoCurso.values());
for(TipoCurso a : tipos ) {
System.out.println(a);
}
}
}
Abaixo estão os enums que quero capturar e inserir no combobox da página curso_formulario.xhtml:
package escola.musica.modelo;
public enum TipoCurso {
CORDAS("Cordas"),
MADEIRAS("Madeiras"),
METAIS("Metais"),
PERCUSSAO("Percussão");
private String label;
private TipoCurso(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
Por último, a página curso formulario.xhtml:
<!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://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Cadastro de Cursos</title>
</h:head>
<h:body>
<h:form>
<p:panel header="Cadastro de Cursos">
<h:panelGrid columns="2">
<h:outputLabel value="Nome: " />
<p:inputText value="#{cursoBean.curso.nome}" />
<h:outputLabel value="Descrição: " />
<p:inputTextarea value="#{cursoBean.curso.descricao}" cols="40"
rows="3" />
<h:outputLabel value="Duração: " />
<p:spinner value="#{cursoBean.curso.duracao}" min="1" max="8"
stepFactor="0.5" size="1" />
<h:outputLabel value="Tipo:" />
<p:selectOneMenu value="#{cursoBean.curso.tipo}">
<f:selectItem itemLabel=":: Selecione ::" itemValue="#{null}" />
<f:selectItems value="#{CursoBean.tipos}" var="tipo"
itemLabel="#{tipo.label}" itemValue="#{tipo}" />
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</html>