Boa noite pessoal
Tenho um formulario para cadastro de clientes, que conforme seu tipo [Fisico ou Juridico] renderico “xhtml” diferentes.
Abaixo segue o codigo.
<h:form id="Cadastro" prependId="false" >
<div class="boxCamposFormulario">
<h:inputHidden value="#{ClienteCadastroBean.cliente.clienteID}" />
<p:outputPanel styleClass="boxW200" id="boxTipoCliente">
<h:outputLabel value="Tipo Cliente" for="TipoCliente" title="Tipo Cliente" styleClass="obrigatorio w200 lblDescCampo" />
<p:selectOneMenu id="TipoCliente" value="#{ClienteCadastroBean.cliente.tipoCliente}" styleClass="w200" required="true" requiredMessage="#{MensagemBean.mensagemFormulario}" >
<f:selectItem itemLabel="#{MensagemBean.textoSelecione}" itemValue="" />
<f:selectItem id="clienteFisico" itemLabel="Cliente Fisico" itemValue="F"/>
<f:selectItem id="clienteJuridico" itemLabel="Cliente Juridico" itemValue="J" />
<p:ajax event="change" listener="#{ClienteCadastroBean.VerificaTipoCliente}" update="btCadastrar,boxClienteJuridico,boxClienteFisico" oncomplete="DefineCampos()" />
</p:selectOneMenu>
</p:outputPanel>
<p:outputPanel id="boxClienteFisico" >
<p:outputPanel rendered="#{ClienteCadastroBean.clienteFisico}">
<ui:insert name="boxClienteFisico">
<ui:include src="clienteFisico.xhtml" />
</ui:insert>
</p:outputPanel>
</p:outputPanel>
<p:outputPanel id="boxClienteJuridico" >
<p:outputPanel rendered="#{!ClienteCadastroBean.clienteFisico}" >
<ui:insert name="boxClienteJuridico">
<ui:include src="clienteJuridico.xhtml" />
</ui:insert>
</p:outputPanel>
</p:outputPanel>
</div>
<p:commandButton id="btCadastrar" action="#{ClienteCadastroBean.Salvar}" value="Cadastrar" styleClass="btCadastrar" update="boxMensagemValidacao" ajax="false"/>
</h:form>
Dentro dos xhtmls de cada um tenho seus respectivos campos de cadastro, como CPF, RG para cliente fisico e CNPJ e Razao Social para cliente Juridico
Cada um deste formularios tem campos obrigatorios que precisam ser preechidos, como por exemplo Endereco, Bairro , Cidade etc…
Ao selecionar o tipo de cliente o ajax [ <p:ajax event=“change” listener="#{ClienteCadastroBean.VerificaTipoCliente}" update=“btCadastrar,boxClienteJuridico,boxClienteFisico” oncomplete=“DefineCampos()” /> ] é disparado e os formularios são renderizados sem problemas, mas meu problema é o seguinte
Para que os campos obrigatorios de cada formulario sejam validados eu coloquei o scoped do bean de cliente como VIEW, o problema ocorre quando tento alterar um cliente que está em uma listagem, por exemplo, tenho um dataTable, listando os cliente do banco. e ao clicar para editar um cliente eu debugo o bean e os dados são impressos certinho no console, mas não são carregados na tela, e se eu mudar meu scope pra REQUEST as informacoes são carregadas na tela, mas perco a validação dos campos obrigatorios no formulario.
Gostaria de saber como poderia fazer para a tela de edicao “Carregar” as informações do bean com o scope de VIEW, ou com o scode de REQUEST, como faria para validar os campos obrigatorios
Ah, desculpem-me pelo texto grande