Boa tarde galera, tudo certo? Bem, na minha aplicação tenho alguns campos (dentre eles alguns como obrigatórios) e um dialog.
Em especial, no campo de usuário, tenho dois inputText: um em que a pessoa digita o código do usuario, e apartir daí mostra o nome do mesmo no outro inputText. Caso a pessoa não saiba o código, ela clica no comandButton ( que apartir do click abrirá o dialog) e escolhe o usuário, sendo que nesse processo é “jogado” o código dele para um input e o nome para outro.
Porém, estou com um problema: se a pessoa clicar no botão para selecionar o usuário que está DENTRO DO DIALOG… ele chama TODOS os campos OBRIGATÓRIOS da tela. Não sei mais oque fazer para solucionar o problema…
Abaixo, parte do xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:treap="http://java.sun.com/jsf/composite/treap"
xmlns:p="http://primefaces.org/ui">
<body>
<ui:composition template="./default_layout_with_menu.xhtml">
<ui:define name="titulo-pagina">
Reservas
</ui:define>
<ui:define name="content">
<treap:ajaxStatus/>
<p:tabView id="tab" activeIndex="#{reservasJsfBean.indiceAbaSelecionada}" widgetVar="tab1">
<p:tab title="Cadastro" id="tabForm" rendered="#{sec:ifNotGranted('USR')}">
<p:dialog style="position: fixed" closable="true" appendToBody="false" header="Pesquisa de Usuário" resizable="false" widgetVar="usuarioDialog" id="usuarioDlg" modal="true">
<p:panel header="Filtros de Consulta" id="parametrosUsuario">
<p:growl id="grow4" life="4000"/>
<table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
<h:panelGrid columns="2" width="100%">
<h:panelGrid columns="2">
<tr>
<td align="right">Código:</td>
<td>
<p:inputMask mask="9?9999" placeHolder="" size="6" onfocus="this.value='';" value="#{usuariobibJsfBean.usuCodigo}"/>
</td>
</tr>
<tr>
<td align="right">Nome:</td>
<td>
<p:inputText size="20" style="width: 200%" onfocus="this.value='';" value="#{usuariobibJsfBean.usuNome}"/>
</td>
</tr>
</h:panelGrid>
</h:panelGrid>
<tr>
<td>
<p:defaultCommand target="BtnfiltraUsuario" />
<p:commandButton id="BtnfiltraUsuario" actionListener="#{usuariobibJsfBean.atualizar()}" value="Consultar" update="tblUsuarioList" process="parametrosUsuario" image="search"/>
</td>
</tr>
<br/>
</table>
<br/>
<div style="height:500px;overflow-x:auto;overflow-y:scroll;width: 1000px">
<p:dataTable id="tblUsuarioList"
rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'even-row' : 'odd-row'}"
rowIndexVar="rowIx"
var="usuario"
value="#{usuariobibJsfBean.usuariosList}"
emptyMessage="Nenhum registro encontrado."
paginator="true"
paginatorPosition="bottom"
lazy="true"
rows="10" pageLinks="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink}
{PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}
Exibir: {RowsPerPageDropdown}
Registros Encontrados: #{usuariobibJsfBean.usuariosList.rowCount}"
rowsPerPageTemplate="10,25,35,50">
<p:column headerText="Código" sortBy="#{usuario.usuCodigo}" width="60" resizable="true">
#{usuario.usuCodigo}
</p:column>
<p:column headerText="Nome" sortBy="#{usuario.usuNome}" width="220">
#{usuario.usuNome}
</p:column>
<p:column headerText="Cidade" sortBy="#{usuario.usuCidade.nome}" width="220">
#{usuario.usuCidade.nome}
</p:column>
<p:column headerText="Data de Nascimento" sortBy="#{usuario.usuDtnasc}" width="220">
<h:outputText value="#{usuario.usuDtnasc}"/>
</p:column>
<p:column headerText="Ação" width="50">
<p:commandButton update="@form" value="Selecionar" image="ok" title="Selecionar">
<f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.crudObj.resleitor}" />
<f:setPropertyActionListener value="#{usuario.usuCodigo}" target="#{reservasJsfBean.codigoUsuarioBibParaRegistro}" />
<f:ajax render="codigo_usuario" event="change" listener="#{reservasJsfBean.atualizarCodigoDeUsuario(event)}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</div>
<br/>
</p:panel>
</p:dialog>
<p:growl id="grow2" life="4000"/>
<fieldset>
<legend>Dados principais</legend>
<h:panelGrid columns="2" width="100%">
<h:panelGrid columns="2">
<div>
<td align="right">Usuário:</td>
<h:panelGrid columns="3">
<p:inputMask id="codigo_usuario" size="6" mask="9?9999" required="true" requiredMessage="O campo usuário deve ser informado." placeHolder="" value="#{reservasJsfBean.codigoUsuarioBibParaRegistro}" >
<f:ajax render="codigo_usuarioMostra" event="change" listener="#{reservasJsfBean.atualizarUsuarioPorCodigo(event)}"/>
</p:inputMask>
<p:inputText id="codigo_usuarioMostra" size="35" disabled="true" required="true" requiredMessage="O campo usuário deve ser informado." value="#{reservasJsfBean.crudObj.resleitor.usuNome}"/>
<p:commandButton icon="ui-icon-search" onclick="usuarioDialog.show()"/>
</h:panelGrid><br/>
</div>
</h:panelGrid>
<h:panelGrid columns="2" style="height: 100%; border-top: 0">
<p:outputLabel id="resSituacao_lbl" value="Situação:" for="resSituacao" />
<p:selectOneMenu id="resSituacao" value="#{reservasJsfBean.crudObj.resSituacao}" required="true" requiredMessage="O campo situação deve ser informado.">
<f:selectItem itemLabel="Ativo" itemValue="A" />
<f:selectItem itemLabel="Inativo" itemValue="I"/>
</p:selectOneMenu>
<p:outputLabel id="resDtfinal_lbl" value="Data Validade:" for="resDtfinal"/>
<p:inputMask id="resDtfinal" mask="99/99/9999" value="#{reservasJsfBean.crudObj.resDtfinal}" style="width: 60%" required="true" requiredMessage="O campo data final deve ser informado.">
<f:convertDateTime pattern="dd/MM/yyyy"/>
</p:inputMask>
</h:panelGrid>
</h:panelGrid>
</fieldset>
<br/>
<h:outputLabel/>
<h:panelGrid columns="3">
<treap:btnCrudNovo bean="#{reservasJsfBean}" visivel="#{sec:ifAnyGranted('ADM')}"/>
<treap:btnCrudSalvar bean="#{reservasJsfBean}"/>
<treap:btnCrudCancelar bean="#{reservasJsfBean}"/>
</h:panelGrid>
</p:tab>
</p:tabView>
</ui:define>
</ui:composition>
</body>
</html>
Se alguém puder ajudar, agradeceria mto. Já fiz vários testes e pedi ajuda pra mtas pessoas, porém, ninguém conseguiu me ajudar a solucionar o problema.
Então, se voês puderem ajudar, agradeço mtoo. Vlw