RESOLVIDO] Perdia a Lista d objetos q popula o h:selectOneMenu na hora d validar RequestScoped

Maldito seja a mensagem de erro “[color=red]Validation Error: Value is not valid[/color]” :lol:

será que alguem já passou por essa situação:

possuo uma lista de Participante (um objeto que criei) e quero selecionar um item desta lista e colocar em um atributo do tipo Participante de outro objeto.

oque eu fiz: coloquei um h:selectOneMenu para selecionar um objeto desta lista e settar no atributo do outro objeto

tenho um conversor para este Participante que funciona corretamente
sobreescrevi o metodo equals e hashcode do Participante

o problema é o seguinte:
como estou usando @RequesScoped eu perco a lista de Participante (não sei pq) e dae ele dá aquele erro chato (Validation Error: Value is not valid)
alguem sabe como não perder esta lista? ou como desativar essa validação do JSF

OBS.: só posso usar @RequestScoped

obrigado pessoal
um abraço

[size=24]RESOLVIDO (todos os problemas da minha vida :lol: )[/size]

Usei PhaseListener, aprendi sobre o assunto com o livro “the complete reference JSF 2.0” e aqui: http://www.guj.com.br/java/53225-explicacao-sobre-phaselistener

Criei uma implementação de PhaseListener:
sempre q executar a página “TornarUsuarioGerenteDeParticipantes.xhtml” antes de validar o formulario
irá executar o método “tornarUsuarioGerenteDeParticipantes.carregarUsuario”, neste método eu recarrego meu objeto e com a lista que eu estava perdendo


public class TornarUsuarioGerenteDeParticipantesPL implements PhaseListener{

    private final static String pagina = "/TornarUsuarioGerenteDeParticipantes.xhtml";

    @Override
    public void beforePhase(PhaseEvent event) {
        String nomeDoMetodo = "#{tornarUsuarioGerenteDeParticipantes.carregarUsuario()}";

        String paginaAcessada = event.getFacesContext().getViewRoot().getViewId();

        if (pagina.indexOf(paginaAcessada) > -1) {
            event.getFacesContext().getApplication().createMethodBinding(nomeDoMetodo, new Class[] {}).invoke(event.getFacesContext(), new Object[] {});
        }
    }

    @Override
    public void afterPhase(PhaseEvent event) {
        //faz nada
    }

    @Override
    public PhaseId getPhaseId() {
        return PhaseId.PROCESS_VALIDATIONS;
    }


    

}

Declarei no FacesConfig:

<lifecycle>
        <phase-listener>meupackage.TornarUsuarioGerenteDeParticipantesPL</phase-listener>
    </lifecycle>

qualquer dúvida posta ae que eu respondo