Problema com combos aninhados JSF

Bem pessoal, já vi alguns topicos com essa discursão, mas não consegui resolver meu problema ainda.

Eu nao estou conseguindo carregar um segundo combo, depois de selecionar um elemento do primeiro. Debugando, percebi que no bean controller de minha lista (classe controller que esta setada como request no faces-config), a lista está nula. coloquei um f:saveState na pagina pra tentar manter o estado da lista, mas nada…

Seguem abaixo, alguns trechos de codigo referente ao meu problema:

***************** FACES_CONFIG **************************

usuarioController
br.com.unimed.cg.agendamentoUnimed.controller.UsuarioController
request

<managed-bean>
    <managed-bean-name>listas</managed-bean-name>
    <managed-bean-class>br.com.unimed.cg.agendamentoUnimed.controller.Listas</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

*********************** Listas *********************************
public Map<String, String> findCooperadoByEspecialidade(String especialidade) {
if (especialidade != null && !"".equals(especialidade)){
CooperadoDao cooperadoDao = new CooperadoDaoImpl();
Map<String, String> mapCooperadosAux = new TreeMap<String, String>();
try {
List lista = cooperadoDao.getCooperadoByEspecialidade(especialidade);
if (lista != null) {
for (Cooperado cooperado : lista)
mapCooperadosAux.put(cooperado.getNome(), cooperado
.getNome());
}
this.mapCooperados = mapCooperadosAux; =============> aqui o this.mapCooperados está null. nao está guardando o estado.
} catch (Exception e) {
e.printStackTrace();
}
return this.mapCooperados;
}else{
this.mapCooperados.clear();
this.mapCooperados.put("", “”);
return this.mapCooperados;
}

}

***************** AgendamentoController ********************
public Map<String, String> filtraComboCooperado(){
Listas listas = new Listas();
return listas.findCooperadoByEspecialidade(this.especialidade);
}

********************** Pagina **********************************
<h:outputLabel value=“Especialidade: " for=“especialidadeC” style=“font-weight: bold”></h:outputLabel>
<h:panelGroup>
<h:selectOneMenu id=“especialidadeC” rendered=“true” value=”#{agendamentoController.especialidade}" binding="#{agendamentoController.especialidade}">
<a4j:support event=“onchange” action="#{agendamentoController.filtraComboCooperado}"
ajaxSingle=“true” reRender =“especialidadeC,cooperadoC”>
</a4j:support>
<f:selectItem id=“item1” itemLabel="-- Selecione --" itemValue=""/>
<f:selectItems value="#{listas.mapEspecialidades}"/>
</h:selectOneMenu>
</h:panelGroup>


<h:outputLabel value=“Cooperado: " for=“cooperadoC” style=“font-weight: bold”></h:outputLabel>
<h:panelGroup>
<t:saveState value=”#{listas.mapCooperados}"></t:saveState>
<h:selectOneMenu value="#{agendamentoController.cooperado}" id=“cooperadoC” rendered=“true”>
<f:selectItem id=“iC1” itemLabel="-- Selecione --" itemValue=""/>
<f:selectItems value="#{listas.mapCooperados}"/>
</h:selectOneMenu>
</h:panelGroup>

Coloca teus códigos dentro da tag code que fica mais fácil de ler
Eu não li o código todo mas possivelmente pelo menos um dos problemas é o event=“onchange”
Eu uso o f:ajax e dentro do event tu coloca o evento sem o on por exemplo(event=“change”)
Não sei se o event do f:ajax e desse a4j:support funcionam da mesma forma mas provavelmente sim.
Se isso não corrigir o problema posta responde ai de novo com os códigos dentro da tag certinho =)