P:autocomplete SALVAR

5 respostas
rfagalde

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 "";
	}

5 Respostas

Hebert_Coelho

No converter chega o valor correto?

rfagalde

Olá Jakefrog.

Sim, exatamente o valor do campo! E como é para ser um novo registro ele não encontra nada. Os outros atributos da classe Funcionário são populados, apenas o campo nome é que fica vazio.

Também tentei passar o objeto no value como abaixo, mas nem chega no MB!

value="#{funcionarioBean.editado}"

Obrigado.

Hebert_Coelho

Quando você faz a consulta no DB (funcionarioRN.carregarMatricula(arg2); ) ele ta trazendo o nome?

rfagalde

Não é nem é para trazer, estou criando um novo registro!
Então a pergunta é: Eu posso usar o autocomplete num formulário que irá salvar registros?

Eu devo ter uma área diferente para fazer as pesquisas?

Obrigado.

Hebert_Coelho

Cara, nunca vi problema em usar o autocompletar na hora de cadastro não.

Vou por outra pessoa ajudar aqui, pois não entendi ainda qual o uso dessa funcionalidade em seu cadastro.

Criado 3 de junho de 2012
Ultima resposta 3 de jun. de 2012
Respostas 5
Participantes 2