Olá desenvolvedores, iniciamos a primeira parte de uma série de tutoriais sobre web service CEP. Em “WEB SERVICES EM JAVA WEB” falamos um pouco do conceito desse tipo de serviço, onde exemplificamos que serviços web são um conjunto de métodos ou funções de uma aplicação. Trata-se de uma arquitetura estrutural que permite a comunicação entre diversos serviços web. Ainda que estes serviços tenham sido desenvolvidas sob diferentes linguagens.

Aqui no curso de Formação Java Web já fizemos uma implementação semelhante com o JSP – JavaServer Pages com Servlets. Neste caso é preciso apenas declarar o JQuery no cabeçalho da página ou mesmo outro framework JavaScript que irá funcionar. No entanto, com o JSF – JavaServer Faces, a estrutura é diferente, visto que ele depende do ManagedBean no Back-end.

Desse modo iremos preencher os dados na tela utilizando os componentes do JSF. A partir deste ponto, criaremos um evento de “perda de foco”, para então enviar para o ManagedBean, interceptando e fazendo a requisição para o web service.

A resposta a requisição será setada para os atributos do objeto que o ManagedBean controla e os dados serão carregados na tela. Estes são os passos necessários para trabalharmos com a consulta ao CEP com o JSF.

CONSULTA CEP | FRONT-END

O primeiro passo é criar na primeirapagina.xhtml um campo para receber o CEP informado pelo usuário. Neste campo a ativação será feita quando o campo “perder o foco”, é neste momento que o método pesquisaCep() será chamado e todo o processo de validação do CEP terá início.

Na Entidade Pessoa, é preciso ter declaro o atributo CEP gerando para ele os métodos Getters and Setters. Ao declará-lo o Hibernate criará o referido campo na base de dados.

private String CEP;

Para a implementação do campo escolha no formulário um local que faça sentido para você, e insira o componente de identificação do campo h:outputLabel. Abaixo do label insira a tag do componente h:inputText cujo valor será o CEP, atributo declarado na Entidade Pessoa.

Dentro do par de tags h:inputText implementaremos o facelets f:ajax, dessa forma sinalizando o campo de entrada de texto que deverá ser processado. É o f:ajax que receberá o evento de perda de foco “blur”, então o componente CEP será executado e o listener fará a consulta ao CEP por meio do método pesquisaCep().

<f:ajax event=”blur” execute=”@this”  listener=“pesquisaCEP”/>

MÉTODO PESQUISACEP()

Recapitulando o que irá acontecer, o valor digitado pelo usuário no campo de CEP será atribuído ao “pessoa.cep”. Quando o campo perder o foco após o valor ser inserido o f:ajax será executado e o método pesquisaCep() será chamado.

Assim, no ManagedBean PessoaBean implemente o método que como parâmetro receberá AjaxBehaviorEvent que define o comportamento do componente específico para Ajax, ele é necessário para que o JSF entenda o listener.

Nesta fase da implementação para efeitos de teste, isto é, para saber se o CEP digitado foi enviado para o objeto utilizaremos o objeto System.out que é a saída padrão para exibição de Strings no console.

E para testar basta digitar qualquer CEP no campo específico e pressionando a tecla “tab” fazer com o que o campo perca o foco. É o suficiente para podermos verificar no console se até este ponto toda a implementação está funcionando como o esperado.

EM POUCAS PALAVRAS

Esta foi a primeira parte da implementação do pesquisaCep, e neste ponto já conseguimos identificar quando o componente perde o foco e fizemos com que o objeto receba o valor digitado com sucesso. Te vejo na parte dois deste tutorial.