Primefaces autoComplete + Converter

0 respostas
jsfjavaprogramação
A

Boa noite.

Preciso fazer um converter para um componente autoComplete do primefaces visto que o componente autocomplete deve setar a “id” do model “Cidade” no model “Pessoa” onde há um relacionamento @ManyToOne mas não estou conseguindo, alguém para dar uma ajuda?

View:

<p:autoComplete id="acSimple" size="30" maxlength="40"
    value="#{cadastroPessoaBean.pessoa.cidade.id}"	completeMethod="#       {cadastroPessoaBean.completaCidades}"
    scrollHeight="200" var="cidade" itemValue="#{cidade.id}"
    itemLabel="#{cidade.cidade}#{cidade.estado.uf}"
    forceSelection="true" inputStyle="text-transform:uppercase;"       converter="autoCompleteCidadeConverter">
<p:keyFilter regEx="/[a-zA-Z ]/i" />
</p:autoComplete>

Bean:

public List<Cidade> completaCidades(String cidade) {
	List<Cidade> listaCidade = cidades.porCidade3(cidade);
	return listaCidade;
}

Converter:

@FacesConverter(forClass = Cidade.class, value="autoCompleteCidadeConverter")
public class CidadeConverter implements Converter {
@Inject
private Cidades cidades;


@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
	Cidade retorno = null;
	if (value != null && !"".equals(value)) {
		retorno = this.cidades.porId(new Long(value));
		
	}
	return retorno;
}


@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
	if (value != null) {
		Cidade lancamento = ((Cidade) value);
		return lancamento.getId() == null ? null : lancamento.getId().toString();
	}
	return null;
}
}
Criado 29 de março de 2019
Respostas 0
Participantes 1