F:selectItems no selectOneMenu - Definir itemValue

Boa tarde, colegas.

Tenho esse selectOneMenu:

			<h:selectOneMenu id = "selectPeriodo" valueChangeListener="#{lotacaoBEAN.selecionarPeriodo}">
                            <f:selectItem itemLabel="-- Selecionar Periodo --" itemValue="0"/>  
                            <f:selectItems value="#{periodoBEAN.periodoLista}"/>
			    <a4j:support event="onchange" reRender="selectLotacao"/>  
			</h:selectOneMenu>

A propriedade periodoBEAN.periodoLista é do tipo ArrayList onde o populo desta forma:

			periodoLista.add( new SelectItem( "090505", "String 1" ) );
			periodoLista.add( new SelectItem( "090506", "String 2" ) );
			periodoLista.add( new SelectItem( "090507", "String 3" ) );

Esse selectOneMenu é preenchido normalmente. Só que o seguinte: Estou tentando trabalhar com outro selectOneMenu utilizando richfaces a4j e não funciona.
Não consigo passar o valor “090505”, que está dentro do SelectItem.

Se eu fizer assim, dá certo:

			<h:selectOneMenu id = "selectPeriodo" valueChangeListener="#{lotacaoBEAN.selecionarPeriodo}">
                            <f:selectItem itemLabel="-- Selecionar Periodo --" itemValue="0"/>  
                            <f:selectItem itemLabel="String 1" itemValue="090505"/>  
                            <f:selectItem itemLabel="String 2" itemValue="090506"/>  
                            <f:selectItem itemLabel="String 3" itemValue="090507"/>  
			    <a4j:support event="onchange" reRender="selectLotacao"/>  
			</h:selectOneMenu>

Como posso fazer para esse SelectOneMenu conseguir passar um “itemValue” dentro do
<f:selectItems value="#{periodoBEAN.periodoLista}"/> ?

no seu Bean é só setar a variavel que está no value do componente

selecionarPeriodo = "valor desejado";

desta maneira vai ficar selecionado o item com o value desejado.

Olá Joed.

Fiz como você me falou, mas também não consegui pegar o primeiro valor do SelectItem. A String periodoSelecionado fica com o valor que eu inicializar e é passado esse valor para o método selecionarPeriodo, e não o atualizado pelo SelectOneMenu.

O managed bean:

private String periodoSelecionado;

public String getPeriodoSelecionado() {
	return periodoSelecionado;
}


public void setPeriodoSelecionado(String periodoSelecionado) {
	this.periodoSelecionado = periodoSelecionado;
}

//Executa quando for alterado o Período
public void selecionarPeriodo(ValueChangeEvent evento){
	try 
	{
		System.out.println(periodoSelecionado);
		//lotacoesPorPeriodo = new LotacaoDAO().getLotacoesSelectItem(evento.getNewValue().toString() , "5840");
		lotacoesPorPeriodo = new LotacaoDAO().getLotacoesSelectItem(getPeriodoSelecionado(), "5840");

	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

e o meu SelectOneMenu

<a4j:form>	
  <h:selectOneMenu value="#{lotacaoBEAN.periodoSelecionado}" id = "selectPeriodo" valueChangeListener="# lotacaoBEAN.selecionarPeriodo}">
  <f:selectItem itemLabel="-- Selecionar Periodo --" itemValue="0"/>  
  <f:selectItems value="#{periodoBEAN.periodoLista}"/>
  <a4j:support event="onchange" reRender="selectLotacao"/>  
  </h:selectOneMenu>
</a4j:form>

Mais alguma dica?

Olá colegas.

Voltando a forma anterior, que eu tinha postado antes, verifiquei o seguinte.

Apesar de o meu ArrayList ser populado dessa forma:

   periodoLista.add( new SelectItem( "090505", "String 1" ) );  
   periodoLista.add( new SelectItem( "090506", "String 2" ) );  

verifiquei o código fonte gerado e o select html estava dessa forma:

<select>
    <option value="[javax.faces.model.SelectItem@ea3932, javax.faces.model.SelectItem@15118a7, javax.faces.model.SelectItem@1299f7e, javax.faces.model.SelectItem@1a631cc, javax.faces.model.SelectItem@f6398, javax.faces.model.SelectItem@53a9d5, javax.faces.model.SelectItem@b2e752, javax.faces.model.SelectItem@170ec24]">String 1</option>
    <option value="[javax.faces.model.SelectItem@ea3932, javax.faces.model.SelectItem@15118a7, javax.faces.model.SelectItem@1299f7e, javax.faces.model.SelectItem@1a631cc, javax.faces.model.SelectItem@f6398, javax.faces.model.SelectItem@53a9d5, javax.faces.model.SelectItem@b2e752, javax.faces.model.SelectItem@170ec24]">String 2</option>
</select>

Por isso que o método do valueChangeListener do SelectOneMenu não dá certo…

Alguém sabe como posso resolver esse problema?

como vc ta declarando o seu periodoLista??