Estou usando o autocomplete dentro de um formulário, ou seja, este formulário será usado para salvar e fazer a consulta através do autocomplete. O autocomplete está funcionando na pesquisa, porém ao salvar o campo usado para a pesquisa(no caso “nome”) está sempre vazio no MB.
jsf:
<p:autoComplete completeMethod="#{funcionarioBean.localizarfuncionario}" id="nome" converter="funcionarioLocalizarNome"
var="funcionario" itemLabel="#{funcionario.nome}" itemValue="#{funcionario}"
value="#{funcionarioBean.editado.nome}" minQueryLength="2" size="40">
<p:ajax event="itemSelect" listener="#{funcionarioBean.handleSelect}" update="funcionarioForm" />
</p:autoComplete>
converter:
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
if (arg2.trim().equals("")) return null;
FuncionarioRN funcionarioRN = new FuncionarioRN();
funcionario funcionario = funcionarioRN.carregarMatricula(arg2);
System.out.println("passando no converter getAsObject ");
if (funcionario!=null){
System.out.println("passando no converter getAsObject dentro do método");
return funcionario;
}
return null;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
System.out.println("passando no converter getAsString");
if (arg2!=null && arg2!= ""){
System.out.println("passando no converter getAsString dentro do método");
funcionario b = (funcionario)arg2;
return b.getMatricula();
}
return "";
}