ola pessoal
eu tenho o seguinte metodo na classe Pessoa
public Map getSexoLista() {
Map<String,Sexo> est = new HashMap<String,Sexo>();
//ENQUANTO EXISTIR VALOR NO ENUM, ELE LISTA
for (Sexo type : Sexo.values()) {
//POR **, TODO ENUM TERMINA EM "FIM", ENTAO QUANDO ENCONTRAR "FIM", ELE SAI DO LOOP
if (type == Sexo.FIM){break;};
//est.put(type.getDescr(),Integer.toString(type.getId()));
//est.put(type.getDescr(),type.toString());
est.put(type.getDescr(),type);
}
return est;
}
e tenho o seguinte metodo no Enum sexo
public Map getSexoLista2() {
Map<String,Sexo> est = new HashMap<String,Sexo>();
//ENQUANTO EXISTIR VALOR NO ENUM, ELE LISTA
for (Sexo type : Sexo.values()) {
//POR **, TODO ENUM TERMINA EM "FIM", ENTAO QUANDO ENCONTRAR "FIM", ELE SAI DO LOOP
if (type == Sexo.FIM){break;};
//est.put(type.getDescr(),Integer.toString(type.getId()));
//est.put(type.getDescr(),type.toString());
est.put(type.getDescr(),type);
}
return est;
}
bem, como voces podem ver, eles sao identicos a nao ser pelo nome
porem, se eu uso no meu form da seguinte forma funciona
<f:selectItems value="#{pessoaFisicaMB.pessoaFisica.sexoLista}"/>
mas se eu uso da seguinte forma
<f:selectItems value="#{pessoaFisicaMB.pessoaFisica.sexo.sexoLista2}"/>
ele me gera o seguinte erro
javax.servlet.ServletException: "Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(sexoID).
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
agora, nao entendo por que, ja que os metodos sao iguais, apenas o mudar de lugar faz gerar o erro.
e pelo retorno do erro, me parece que ele esta encontrando o metodo
o que estou fazendo de errado?
abs
T+