SelectOneMenu JSF

Boa noite,

estou com a seguinte situação: Tenho 3 SelectOneMenu (Pais,Estado e Cidade), eu quero assim que selecionar o pais ele carregar o select dos estados e quando selecionado o estado carregar o das cidades.
Eu consigo carregar o SelectOneMenu dos estados ao selecionar o pais, mais quando seleciono o estado para carregar a cidade ele nem chega a disparar o método do evento change. Ele só dispara o método quando eu clico no primeiro item do Select que é “Selecione um estado:”.

Campos SelectOneMenu:

<h:outputLabel value="Pais:" for="pais"/>				
				<h:selectOneMenu id="comboPais" 
				                 value="#{usuarioBean.usuario.endereco.pais.idPais}" 
				                 required="true">										
					<f:selectItem itemLabel="Selecione o país:" itemValue="0"/>					
					<f:selectItems value="#{paisBean.paises}"/>					
					<f:ajax event="change" render="comboEstado" listener="#{usuarioBean.atualizarEstados}"/>
				</h:selectOneMenu>
				
				<h:outputLabel value="Estado:" for="estado"/>		
	    		<h:selectOneMenu id="comboEstado" 
	    						 value="#{usuarioBean.usuario.endereco.estado.idEstado}"	    						  
	    						 required="true">	    			
	    			<f:selectItem itemLabel="Selecione o estado:" itemValue="0"/>	    						    						
					<f:selectItems value="#{usuarioBean.listaEstados}" />								   	
					<f:ajax event="change" render="comboCidade" listener="#{usuarioBean.atualizarCidades}"/>							   											
				</h:selectOneMenu>
				
				<h:outputLabel value="Cidade:" for="cidade"/>	
				<h:selectOneMenu id="comboCidade" value="#{usuarioBean.usuario.endereco.cidade.idCidade}" required="true">
					<f:selectItem itemLabel="Selecione a cidade:" itemValue="0"/>	
					<f:selectItems value="#{usuarioBean.listaCidades}"
								   var="cidade"
								   itemLabel="#{cidade.descricaoCidade}"
								   itemValue="#{cidade.idCidade}" />						
	          	</h:selectOneMenu>

Métodos do usuarioBean:

public void atualizarEstados(AjaxBehaviorEvent  event) {
		long idPais = this.usuario.getEndereco().getPais().getIdPais();
		this.listaEstados = new ArrayList<SelectItem>();
		if (idPais != 0) {
			EstadoRN estadoRN = new EstadoRN();
			List<Estado> estados = new ArrayList<Estado>(estadoRN.listar(idPais));			
			for (Estado e : estados) {
				SelectItem se = new SelectItem();
				se.setValue(e.getIdEstado());
				se.setLabel(e.getDescricaoEstado());
				this.listaEstados.add(se);
			}			 
		} else {
			this.listaEstados = null;
		}				
	}
	
	public void atualizarCidades(AjaxBehaviorEvent event) {
		long idEstado = this.usuario.getEndereco().getEstado().getIdEstado();
		this.listaCidades = new ArrayList<SelectItem>();
		if (idEstado != 0) {
			CidadeRN cidadeRN = new CidadeRN();
			List<Cidade> cidades = new ArrayList<Cidade>(cidadeRN.listar(idEstado));
			for (Cidade c : cidades) {
				SelectItem se = new SelectItem();
				se.setValue(c.getIdCidade());
				se.setLabel(c.getDescricaoCidade());
				this.listaCidades.add(se);
			}
		} else {
			this.listaCidades = null;
		}				
	}

Alguem pode me dizer o que eu posso estar fazendo de errado ?

tire o required da combo de cidades.

Qual escopo seu MB está? Tente colocar como ViewScope (se for jsf2 rs)

Inclua o ‘comboCidade’ no atributo ‘render’ do evento ajax do seu ‘comboPais’, e certifique-se que no seu ManagedBean você carrega as informações de cidades assim que troca o seu estado.

Ainda nada pesssoal, fiz todas as alterações que foram pedidas aqui.
Ele continua só disparando o evento do comboEstado quando eu clico no item “Selecione um estado:”.

Bom tarde,

Eu estava utilizando o @RequestScoped e como o companheiro ali em cima falou mudei para @ViewScoped e funcinou.
Gostaria de entender a diferença entre esses 2 escopos ? Alguem poderia me explicar ?
Procurei algo no google mais não consegui entender através dos resultados que obtive na consulta.

Obrigado

Tudo é em função da manutenção do estado.

Quando se usa Request, este, faz com que o estado dos objetos se percam depois de uma chamada ajax.

Já o ViewScope, é o escopo de página, ou seja, ele mantém o estado dos seus objetos durante as interações com sua página, ou seja, vc seleciona um estado, e a partir dele obtém as cidade, isso implica que, se vc selecionou o estado primeiramente, até o final do seu cadastro vc vai querer saber qual o estado ora selecionado, independente de outras N ações que sua página sofreu, aí entra o ViewScope!

Tentei explicar de forma bem sucinta!

No meu caso nem colocando @ViewScoped não funciona. Alguém tem ideia? Isso é algum bug? Fazem dois dias que estou tentando resolver esse problema.
Obs.: no meu caso estou usando o SelectOneMenu do PrimeFaces.