H:selectOneMenu com a4j:support

Feras,

estou usando richFaces para renderizar um h:selectOneMenu conforme abaixo

<h:selectOneMenu  style="width:400px" id="idSistema" value="#{permissoesMbean.idMenu}" valueChangeListener="#{permissoesDelegate.getItemSistema}">
			                <f:selectItem itemLabel="Selecione" itemValue="0" />
							<f:selectItems value="#{permissoesMbean.selectSistema}" itemValue=""/>
							<a4j:support reRender="idItemSistema" event="onchange" ajaxSingle="true" />
			            </h:selectOneMenu>			

ele até executa o método abaixo, mas não estou conseguindo capturar o valor do atributo “event”

public String getItemSistema(ValueChangeEvent event){
     System.out.println("Valor222: " + event.getNewValue());
}

Como você está usando o selectItems não há porquê usar o itemValue, retire-o

Fera

já fiz o teste sem ele mas não resolveu

Como você populou esse h:selectOneMenu

conforme abaixo

List<MenuTO> listaSistemas = new ArrayList<MenuTO>();
private List<SelectItem> selectSistema;

	public List<SelectItem> getSelectSistema() {
		listaSistemas = permissoesDelegate.getSistemas();
		selectSistema = new ArrayList<SelectItem>();
		SelectItem si = new SelectItem();

		for (MenuTO itemMenu : listaSistemas) {
			si = new SelectItem();
			si.setLabel(itemMenu.getIdMenu().toString());
			si.setLabel(itemMenu.getDescMenu());
			selectSistema.add(si);
		}
		
		return selectSistema;
	}

está aí o erro você está definindo 2 vezes o label

		si.setLabel(itemMenu.getIdMenu().toString());
		si.setLabel(itemMenu.getDescMenu());

teste esse código abaixo

[code]
public List getSelectSistema() {
listaSistemas = permissoesDelegate.getSistemas();
selectSistema = new ArrayList();
SelectItem si = new SelectItem();

	for (MenuTO itemMenu : listaSistemas) {
		si = 
		Integer idMenu = si.setLabel(itemMenu.getIdMenu();
		String descricaoMenu = itemMenu.getDescMenu();
		selectSistema.add(new SelectItem(id, descricaoMenu));
	}
	
	return selectSistema;
}[/code]

Fera,

realmente era isso…resolveu meu problema, muito obrigado segue como ficou meu código

    public List<SelectItem> getSelectSistema() {  
        listaSistemas = permissoesDelegate.getSistemas();  
        selectSistema = new ArrayList<SelectItem>();  
        for (MenuTO itemMenu : listaSistemas) {  
            String idMenu = itemMenu.getIdMenu().toString();  
            String descricaoMenu = itemMenu.getDescMenu();  
            selectSistema.add(new SelectItem(idMenu, descricaoMenu));  
        }  
        return selectSistema;  
    } 

veja que não precisa necessariamente do método.

Eu crio uma variável que receberá o id do selecionado: #{configuracaoBean.idModalidadeCategoria}


                &lt;h:selectOneMenu value="#{configuracaoBean.idModalidadeCategoria}"&gt;
                    &lt;f:selectItems value="#{configuracaoBean.listaModalidadeCategoria}"
                                   var="modalidade"
                                   itemValue="#{modalidade.id}"
                                   itemLabel="#{modalidade.descricao}" /&gt;
                &lt;/h:selectOneMenu&gt;

Depois para obter o selecionado, itero na lista o retiro o objeto com aquele id.