Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.Se

Bom dia pessoal estou com um problema a ser resolvido e venho a procura de um socorro.

segue abaixo os códigos.

[code]

					<td>Genero:
						<div class="campoObrigatorio">*</div>
						</td>
						<td><h:selectOneMenu  value="#{generoController.genero}">
						  <f:selectItem itemLabel="Selecione" itemValue=""/>
						  <f:selectItems value="#{generosController.selGeneros}"/>
						  
						</h:selectOneMenu></td>
					</tr>

[/code]

minha classe controller é:

import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.faces.model.SelectItem;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import util.MessageUtil;
import model.Genero;
import dao.GeneroDAO;

@Component
@Scope("globalSession")
public class GeneroController {
	
	Genero genero, filtro;
	@Resource
	GeneroDAO dao;
	List<Genero> generos;
	List<SelectItem> selGeneros;
	
	void limpar(){
		genero =  new Genero();
		filtro =  new Genero();
		generos = new ArrayList<Genero>();
		selGeneros = new ArrayList<SelectItem>();
	}
	
	public GeneroController(){
		limpar();
	}

	public List<Genero> getGeneros() {
		if(generos.size()==0){
			generos = dao.todos("GEN_DSC");
		}
		return generos;
	}

	public void setGenero(List<Genero> generos) {
		this.generos = generos;
	} 

	public String listar(){
		limpar();
		return "listarGeneros";
	}

	public String novo(){
		limpar();
		return "cadastrarGenero";
	}

	public String editar(){
		return "cadastrarGenero";
	}

	public String salvar(){
		String resultado = "okSalvarGenero";
		try {
			if(genero.getId()==null){
				genero.setId(new Long(dao.buscarId()));
				dao.salvar(genero);
			}
			else{
				dao.atualizar(genero);
			}
			MessageUtil.mostraMensagemSucesso();
		}catch(Exception e){
			e.printStackTrace();
			MessageUtil.mostraMensagemErro();
			resultado = "erroSalvarGenero";
		}finally{
			generos.clear();
		}
		return resultado;

	}

	public void filtrar(){
		generos = dao.findByExample(filtro);
	}

	public Genero getGenero() {
		return genero;
	}

	public void setGenero(Genero genero) {
		this.genero = genero;
	}

	public Genero getFiltro() {
		return filtro;
	}

	public void setFiltro(Genero filtro) {
		this.filtro = filtro;
	}

	public GeneroDAO getDao() {
		return dao;
	}

	public void setDao(GeneroDAO dao) {
		this.dao = dao;
	}

	public void setGeneros(List<Genero> generos) {
		this.generos = generos;
	}

	public List<SelectItem> getSelGeneros() {
		if(selGeneros.size()==0){
			for(Genero g : getGeneros()){
				selGeneros.add(new SelectItem(g,g.getDescricao()));
			}
		}
		return selGeneros;
	}

	public void setSelGeneros(List<SelectItem> selGeneros) {
		this.selGeneros = selGeneros;
	}


}





alguma sugestão?

       João Paulo Franco
     Analista de Sistemas

Estudante de Ciências da Computação.

Estranho…esse erro só pipocaria se a sua lista não fosse do tipo List, o que ela é, ou se ela estivesse nula…o que aparentemente não está. No seu “getSelGeneros”, de fato o retorno está sendo diferente de nulo?

Pronto pessoal descobri o erro!!!
Valeu ao GUJ mesmo assim pelo serviço.

Nesse caso, seria de bom tom postar aqui qual foi a solução, para que outros colegas com o mesmo problema possam ser ajudados :wink:

Desculpas…

o erro foi falta de atenção acho que por ser segunda feira, segue abaixo a correção

<tr>
							
							<td>Genero:
							<div class="campoObrigatorio">*</div>
							</td>
							<td><h:selectOneMenu converter="entityConverter" id="gen"  value="#{generoController.genero}">
							  <f:selectItem itemLabel="Selecione" itemValue=""/>
							  <f:selectItems value="#{generoController.selGeneros}"/>
							  
							</h:selectOneMenu></td>
						</tr>

no primeiro código tinha colocado a classe controller no plural:

<f:selectItems value="#{generosController.selGeneros}"/> 

enquanto o certo era

<f:selectItems value="#{generoController.selGeneros}"/>

Logo estva respondido e por um erro desse já tinha revisado o código todo.
Valeu Pessoal.

respondido