Duvida JSF - reRender input text com auto-complete

0 respostas
rsborgespereira

Amigos,

Estou com uma duvida simples porem chata. Já procurei bastante aqui no fórum mas nao encontrei uma solução.
Tenho um auto-complete em JSF com richfaces, e estou tentando fazer um reRender em outro campo, porém com os dados de uma variavel do auto complete. É um reRender simples. O usuário digita o nome da cidade, e logo em seguida aparece uma lista das cidades do Brasil. O meu intuito é quando ele selecionar a cidade, já preencher a sigla do estado na input text.

O codigo esta abaixo:

<rich:suggestionbox id="cidadeCadastro" for="cidade"  fetchValue="#{city.nomCidade}" suggestionAction="#{utilBean.autocompleteCidade}"  width="250" height="250" var="city">
		                        <h:inputText id="cidade" value="#{clienteBean.cidade}" tabindex="1" size="40" maxlength="40">
		                         <a4j:support  event="onkeypress" ajaxSingle="true"  reRender="estado" data="#{city.sglEstado}" ignoreDupResponses="true" />
		                        </h:inputText>
		                            <h:column>
			                        	<h:outputText value="#{city.nomCidade}" />
			                        </h:column>
			                         <h:column>
			                        	<h:outputText>-</h:outputText>
			                        </h:column>
			                        <h:column>
			                        	<h:outputText value="#{city.sglEstado}" />
			                        </h:column>
 								</rich:suggestionbox>
							   
		                        </td>
		                    </tr>
		     
		                    <tr>
		                        <td class="label" >Estado: </td>
		                        <td>&nbsp;<h:inputText  id="estado" value="#{clienteBean.estado}" tabindex="1" size="40" maxlength="40" readonly="true"  /></td>
		                    </tr>

o auto complete no java faz uma consulta no banco via JPA.

public List<Cidade> autocompleteCidade(Object o) {
    	List<Cidade> l = AdminFacade.getInstance().buscaCidadePorNome(o.toString()); 
    	return l;
    }

o Codigo da entidade cidade esta aqui:

public class Cidade implements Serializable {
	@Id
	@Column(name="cod_cidade")
	private Integer codCidade;

	@Column(name="cod_estado")
	private Integer codEstado;

	@Column(name="nom_cidade")
	private String nomCidade;
	
	@Column(name="sgl_estado")
	private String sglEstado;

	private static final long serialVersionUID = 1L;

	public Cidade() {
		super();
	}

	public Integer getCodCidade() {
		return this.codCidade;
	}

	public void setCodCidade(Integer codCidade) {
		this.codCidade = codCidade;
	}

	public Integer getCodEstado() {
		return this.codEstado;
	}

	public void setCodEstado(Integer codEstado) {
		this.codEstado = codEstado;
	}

	public String getNomCidade() {
		return this.nomCidade;
	}

	public void setNomCidade(String nomCidade) {
		this.nomCidade = nomCidade;
	}

	public String getSglEstado() {
		return sglEstado;
	}

	public void setSglEstado(String sglEstado) {
		this.sglEstado = sglEstado;
	}
	
	

}

Tenho certeza que estou errando em alguma besteira, mas realmente não consegui fazer esse reRender.

Desde já, agradeço pela ajuda.

Abraços,

Ricardo

Criado 21 de julho de 2009
Respostas 0
Participantes 1