selectOneMenu + valueChangeListener só chama uma vez o método no meu controller

Olá pessoal

Estou com um problema aqui que não tenho nem idéia de como resolver.
Eu tenho um selectOneMenu na minha tela que carrega uma lista de telefones.

<h:selectOneMenu value="#{rootProduct.phoneNumber}" rendered="#{configController.showListPhoneNumbers(rootProduct)}" 
                            valueChangeListener="#{rootProduct.onChangePhoneNumber}">
		
                <f:selectItems value="#{configController.listSisNum}"/>	
		<a:support event="onchange" reRender="#{configController.allRegions}"/>								

</h:selectOneMenu>

Até aí tudo bem, agora, quando eu selecionar um telefone eu tenho q fazer uma reserva deste telefone e com isso eu estou chamando o método “onChangePhoneNumber” para chamar o meu service e assim reservar o número

public void onChangePhoneNumber(ValueChangeEvent event){
		configurationController.onChangePhoneNumber(this, event);
}

O problema é o seguinte, quando eu seleciono outro número da lista o método onChangePhoneNumber n é chamado mais, só funciona uma vez, ou seja só chama o método quando eu seleciono o primeiro número, quando eu seleciono outro na mesma lista, alterando o telefone para reserva o método não é mais chamado, e não dá nenhum erro, a tela simplesmente fica parada.

Oq eu estou fazendo de errado???

Abraços

Cabelo,

o que você está retornando no atributo allRegions?
Uma lista de selectItems com o atributo itemValue = “um objeto”?.
Se estiver usando objetos, fique atento aos converters. Tive este mesmo problema ao trabalhar da forma como falei.

No meu caso a falta de um converter causou o mesmo problema, e o pior: eu não recebia nenhum log, e nenhuma mensagem de erro.

Outra pergunta: está usando jsf 2?

Olá adolfo

no allRegions é somente para recarregar uma outra coisa da minha tela, mas mesmo eu retirando ela ainda estou com o mesmo problema.
Estou converterndo sim todos os valores para SelectItem

public List<SelectItem> getListSisNum(){
		
		if(listaSisNumSelectItem.isEmpty()){
			listaSisNumSelectItem = new ArrayList<SelectItem>();
			listaSisNumSelectItem.add(new SelectItem("", contentService.translateText("DISP_PLEASE_SELECT")));
			for (SisNum sisNum : listSisNum) {
				listaSisNumSelectItem.add(new SelectItem(sisNum.getPhoneNumber(), sisNum.getPhoneNumber()));
			}
		}
		return listaSisNumSelectItem;
	}

Estou usando o JSF 1 :slight_smile:

Estava conversando com um amigo meu e ele me disse que isso pode ser uma limitação do JSF por causa do submit q ele dá, pq na primeira vez ele funciona, mas na segunta vez alguma coisa pode mudar tipo algum id na volta, ele me sugeriu usar um componente do richfaces