Estou com o seguinte problema:
Tenho uma tela de cadastro de cliente, porém, nesta tela eu tenho a parte onde o cliente irá informar o cep, para que eu possa buscar o logradouro, mas nesta tela há vários campos como por exemplo, Nome, e-mail, etc…, todos esses campos tem um validator, para que na hora que eu for salvar minha tela seja validada, porém, ao lado do campo cep, eu tenho um botão que eu queria que não validasse a tela, esse botão serviria somente para chamar o método que retorna o logradouro mediante o cep informado.
Quando clico neste botão, ele valida a tela inteira. Já tentei colocar immediate=“true”, mas o método é executado e a minha propriedade cep esta nula e não consigo recuperar o valor digitado, porém, quando tiro o immediate eu conseigo recuperá-lo. O que eu queria era que simplesmente este botão não validasse a tela e eu conseguisse recuperar o valor digitado e , se possível, validar somente o imputText do cep com esse botão.
Estou usando JSF2 e PrimeFaces.
Segue o código abaixo:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Registro</title>
<link rel="stylesheet" type="text/css" href="css/RegistroStyle.css"/>
</h:head>
<h:body>
<f:view>
<p:fieldset style="width: 55%" legend="Registro">
<h:form>
<p:fieldset style="width: 700px;" legend="Dados Pessoais">
<div class="linha">
<div class="Titulo">
Nome:
</div>
<div class="valor">
<p:inputText value="#{cadastroClienteBean.cadastro.nome}" size="56">
<f:validator validatorId="NomeValidator"/>
</p:inputText>
</div>
</div>
</p:fieldset>
<br></br>
<p:fieldset style="width: 700px;" legend="E-mail">
<div class="linha">
<div class="Titulo">
E-mail:
</div>
<div class="valor">
<p:inputText value="#{cadastroClienteBean.email.email}" size="56">
<f:validator validatorId="EmailValidator"/>
</p:inputText>
</div>
</div>
<div class="linha">
<div class="Titulo">
Senha:
</div>
<div class="valor">
<p:password value="#{cadastroClienteBean.login.senha}" feedback="true" minLength="6">
<f:validator validatorId="PasswordValidator"/>
</p:password>
</div>
</div>
</p:fieldset>
<br></br>
<p:fieldset style="width: 700px;" legend="Telefone">
<div class="linha">
<div class="Titulo">
DDD:
</div>
<div class="valor">
<p:inputText value="#{cadastroClienteBean.telefone.ddd}" maxlength="2" size="2">
<f:validator validatorId="DddValidator"/>
</p:inputText>
</div>
</div>
<div class="linha">
<div class="Titulo">
Número:
</div>
<div class="valor">
<p:inputText value="#{cadastroClienteBean.telefone.telefone}" >
<f:validator validatorId="TelefoneValidator"/>
</p:inputText>
</div>
</div>
</p:fieldset>
<br></br>
<p:fieldset style="width: 700px;" legend="Endereço">
<div class="linha">
<div class="Titulo">
Cep:
</div>
<div class="valor">
<p:inputText value="#{cadastroClienteBean.cep}"/>
<h:commandButton value="OK" actionListener="#{cadastroClienteBean.searchCep}"/>
</div>
</div>
<div class="linha">
<div class="Titulo">
Logradouro:
</div>
<div class="valor">
<h:outputText value="#{cadastroClienteBean.enderecoCompleto}" />
</div>
</div>
</p:fieldset>
<br></br>
<p:fieldset style="width: 700px;" >
<p:commandButton action="#{cadastroClienteBean.salvar}" value="Salvar"/>
</p:fieldset>
</h:form>
</p:fieldset>
</f:view>
</h:body>
</html>
Se alguém puder me ajudar desde já agradeço.