[JSF 2] Erro de conversão ao definir o valor '' para 'null Converter'

5 respostas
B

Galera,

Existem milhões de tópicos com a mesma dúvida, mas efetuei várias tentativas e nada… Segue meu código:

View:

<p:autoComplete id="auto_complete_pessoa_envolvida"
						value="#{pessoaEnvolvidaBean.pessoaFisicaSelecionada}"
						completeMethod="#{pessoaEnvolvidaBean.completaNomePessoa}"
						minQueryLength="2" queryDelay="600" forceSelection="true"
						var="pessoaFisica" itemLabel="#{pessoaFisica.pessoa.nome}"
						itemValue="#{pessoaFisica}" size="72"
						title="#{msg.aie_tooltip_autocomplete_pessoa}"
						converter="pessoaFisicaConverter" />

Converter:

@FacesConverter(forClass = PessoaFisica.class, value="pessoaFisicaConverter")
public class PessoaFisicaConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		if (value != null && value.trim().length() > 0) {
			Long codigo = Long.valueOf(value);
			try {
				PessoaFisicaRN pessoaFisicaRN = new PessoaFisicaRN();
				return pessoaFisicaRN.carregar(codigo);
			} catch (Exception e) {
				throw new ConverterException("Não foi possível encontrar a Pessoa Física de " + value + "." + e.getMessage());
			}
		}
		return null;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		return String.valueOf(((PessoaFisica) value).getNumero());  
	}
	
}

Trecho do MB:

...
	public List<PessoaFisica> completaNomePessoa(String query) {
		List<PessoaFisica> sugestoes = new ArrayList<PessoaFisica>();

		if (query.trim().length() > 0) {
			PessoaFisicaRN pessoaFisicaRN = new PessoaFisicaRN();
			sugestoes = pessoaFisicaRN.buscarPorNome(query);			
		}		

		return sugestoes;
	}

...

Obs.:

  1. Creio que o erro ocorre na fase de validação. Eu pesquiso no autocomplete, traz o registro, mas na hora do submit ocorre o erro.
  2. O objeto pessoaFisicaSelecionada está sendo instanciado no construtor.

Poderiam me dar uma luz?

Obrigado :wink:

5 Respostas

F

Olá blastec!

O que a stacktrace imprime?

B

Fabricio Vallim:
Olá blastec!

O que a stacktrace imprime?

Olá Fabricio.

Cara, não imprime nada… Simplesmente mostra a msg na tela, dentro de <p:messages/>

B

Alguma sugestão?

B

Galera,

O problema todo era um <h:inputHidden /> na view… :oops:

F

Coloque o problema como RESOLVIDO.

Abraços!

Criado 8 de março de 2012
Ultima resposta 8 de mar. de 2012
Respostas 5
Participantes 2