Boa tarde, estou com um problema na renderização do meu componenete JSF
antes de eu usar um Timer estava funcionando perfeitamente, mas agora ele
esta renderizando apartir do request anterior porque ele pega o valor do atributo do request anterior
acho que ele está renderizando antes de acabar o método, olha o meu Bean:
private class PopularApartirDeRuaBuscaListener implements ActionListener{
public void actionPerformed(ActionEvent ae) {
if(ultimaRuaBusca != null && ultimaRuaBusca.equals(ruaBusca)){
if(timer!=null)
timer.stop();
timer = null;
return;
}
System.out.print("ultimaRuaBusca: "+ultimaRuaBusca);
ultimaRuaBusca = ruaBusca;
System.out.println("executou a busca "+ruaBusca);
if(estado!=null && !estado.isEmpty() && cidade!=null && !cidade.isEmpty()
&& ruaBusca!=null && !removerTipoDoLogradouro(ruaBusca).isEmpty()){
ruas = bd.obterRuas(estado, cidade, removerTipoDoLogradouro(ruaBusca));
}else
ruas = new LinkedList<Cep>();
System.out.println("resultado: ");
for(Cep cep : ruas)
System.out.println(cep.getRua());
System.out.println("\n\n");
if(timer!=null)
timer.stop();
timer = null;
}
}
public void popularApartirDeRuaBusca(){
//popula lista de ruas de acordo com a ruaBusca prenchida, cidade e estado
//usado para preencher o <select> de ruas
timer = new Timer(2000, new PopularApartirDeRuaBuscaListener());
timer.start();
}
olha meu facelet:
<span style="float: left; width: 180px;">
Busque sua Rua
<br/>
<h:inputText value="#{semCookiesBean.ruaBusca}" id="ruaBusca" size="20">
<f:ajax event="keyup" execute="@this" listener="#{semCookiesBean.popularApartirDeRuaBusca}" render="rua" />
</h:inputText>
</span>
<span style="float: left; width: 200px;">
<br/>
<h:selectOneListbox value="#{semCookiesBean.rua}" id="rua" size="3" style="display: #{!empty semCookiesBean.ruas ? 'inherit' : 'none'}; background: #fff">
<f:ajax event="valueChange" execute="@this" listener="#{semCookiesBean.popularApartirDeRua}" render="cep" />
<f:selectItem itemLabel="Selecione sua Rua" noSelectionOption="true"/>
<f:selectItems value="#{semCookiesBean.ruas}"/>
</h:selectOneListbox>
</span>