Problemas com campo obrigatório + Dialgos

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

Alguém já passou por isso ou poderia dar alguma ideia por favor?? Vlw…

Experimenta colocar immediate=“true” dentro do teu <p:commandButton/> pra ver se funciona.
vlw

<p:commandButton value="Listar" icon="ui-icon-search" ajax="true" immediate="true" oncomplete="janelaLancamento.show()"/>

Immediate = true, “pula” a validação … dos campos obrigatórios …

Ricardo, você é parente do Frank ?

[quote=diego_pereira]Experimenta colocar immediate=“true” dentro do teu <p:commandButton/> pra ver se funciona.
vlw[/quote]
vou testar aki, valeu…

[quote=Diego Adriano]<p:commandButton value="Listar" icon="ui-icon-search" ajax="true" immediate="true" oncomplete="janelaLancamento.show()"/>

Immediate = true, “pula” a validação … dos campos obrigatórios …

Ricardo, você é parente do Frank ?[/quote]
Boa tarde. Bhá cara, sei não… Sou aki do RS … esse Frank é de onde msm?? Vlww pela ajuda ae…

Rsrsrs … a cara … sou aqui de minas … divisa com sampa …rs
Esse Frank me deu aula na facu a irmã dele tb … Flávia Favero … Pensei que fossem parentes e tals pelo sobrenome … hehe … faz tempo que não falo com ele … o cara era um crânio … doutorado em Fisica Quantica e tals … hsuahsu gente fina !! rs

[quote=Diego Adriano]Rsrsrs … a cara … sou aqui de minas … divisa com sampa …rs
Esse Frank me deu aula na facu a irmã dele tb … Flávia Favero … Pensei que fossem parentes e tals pelo sobrenome … hehe … faz tempo que não falo com ele … o cara era um crânio … doutorado em Fisica Quantica e tals … hsuahsu gente fina !! rs[/quote]
sahuasuhsahusauhhuaas
mas que barbaridade… Acho que não sou parente dele não hein…Mas enfim…Cara, se eu colocar immediate=“true” dentro do <p:commandButton do dialog até funciona, mas daí quando o cara selecionar o usuário no DIALOG, ele SOMENTE traz o NOME e não o CÓDIGO…Alguma idéia?? Vlw

[quote=diego_pereira]Experimenta colocar immediate=“true” dentro do teu <p:commandButton/> pra ver se funciona.
vlw[/quote]
Coloquei cara, porém… daí se seleciono o usuário pelo Dialog, ele “traz” o nome blz, só que não traz consigo o código, além de que pra trazer consigo o código estou tendo que colocar como required = “false”… caso contrário ele dá problema no inputMask que deveria vir o código. Poderia continuar ajudando?? Vlw pela força ae…Abc

Cara altere isso:

<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>
Para isso:

<p:commandButton update="@form" value="Selecionar" image="ok" title="Selecionar"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>
Crie esse cara dentro do seu Bean: "resleitorSelecionado"
No set dele, faça ele chamar um método que busque ele na base !!!

[quote=Diego Adriano]Cara altere isso:

<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>
Para isso:

<p:commandButton update="@form" value="Selecionar" image="ok" title="Selecionar"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>
Crie esse cara dentro do seu Bean: "resleitorSelecionado"
No set dele, faça ele chamar um método que busque ele na base !!![/quote]
Vou testar aki e depois posto o resultado cara. Vlw por estar ajudando…Vlw mesmo…

[quote=Diego Adriano]Cara altere isso:

<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>
Para isso:

<p:commandButton update="@form" value="Selecionar" image="ok" title="Selecionar"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>
Crie esse cara dentro do seu Bean: "resleitorSelecionado"
No set dele, faça ele chamar um método que busque ele na base !!![/quote]
Estou tentando fazer, mas não to conseguindo… Abaixo o xhtml:

<p:commandButton immediate="true" update="@form" value="Selecionar" image="ok" title="Selecionar">   
                                                <f:setPropertyActionListener value="#{usuario.usuCodigo}" target="#{reservasJsfBean.resleitorSelecionado}" />   
                                                <f:ajax render="codigo_usuario" event="change" listener="#{reservasJsfBean.atualizarCodigoDeUsuario(event)}"/>
                                            </p:commandButton>

No meu bean:

 private String resleitorSelecionado;

    public String getResleitorSelecionado() {
        return resleitorSelecionado;
    }

    public void setResleitorSelecionado(String resleitorSelecionado) {
        this.resleitorSelecionado = crudObj.getResleitor().getUsuNome();
    }


public void atualizarCodigoDeUsuario(AjaxBehaviorEvent event) {
        if (crudObj.getResleitor() != null) {
            codigoUsuarioBibParaRegistro = crudObj.getResleitor().getUsuCodigo().toString();
        }
    }

Poderia dar uma mão ae??? Vlw por estar ajudando…

Bão … como diria Jack, “vms por partes” !!!

1º Não precisa do ajax, chame o método diretamente pelo commandbutton

<p:commandButton immediate="true" update="@form" value="Selecionar" image="ok" title="Selecionar" actionListner="{reservasJsfBean.atualizarCodigoDeUsuario}"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>

2º Esse “resleitorSelecionado” precisa ser o msm objeto que esse “resleitor”.
Então altere isso: private String resleitorSelecionado;

3º Esse cara:

[code]public void setResleitorSelecionado(String resleitorSelecionado) {
this.resleitorSelecionado = resleitorSelecionado;
atualizarCodigoDeUsuario();
}

public void atualizarCodigoDeUsuario() {

       codigoUsuarioBibParaRegistro = getResleitorSelecionado();  

} [/code]

Acho que agora fica mais claro pra entender !!

[quote=Diego Adriano]Bão … como diria Jack, “vms por partes” !!!

1º Não precisa do ajax, chame o método diretamente pelo commandbutton

<p:commandButton immediate="true" update="@form" value="Selecionar" image="ok" title="Selecionar" actionListner="{reservasJsfBean.atualizarCodigoDeUsuario}"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>

2º Esse “resleitorSelecionado” precisa ser o msm objeto que esse “resleitor”.
Então altere isso: private String resleitorSelecionado;

3º Esse cara:

[code]public void setResleitorSelecionado(String resleitorSelecionado) {
this.resleitorSelecionado = resleitorSelecionado;
atualizarCodigoDeUsuario();
}

public void atualizarCodigoDeUsuario() {

       codigoUsuarioBibParaRegistro = getResleitorSelecionado();  

} [/code]

Acho que agora fica mais claro pra entender !![/quote]
BHá cara, desculpe pela ignorância em não saber essas coisas, mas é ke sou meio novato… mas to me esforçando… Vou fazer como vc falou e posto o resultado… Valeu cara, valeu msm :slight_smile:

[quote=Diego Adriano]Bão … como diria Jack, “vms por partes” !!!

1º Não precisa do ajax, chame o método diretamente pelo commandbutton

<p:commandButton immediate="true" update="@form" value="Selecionar" image="ok" title="Selecionar" actionListner="{reservasJsfBean.atualizarCodigoDeUsuario}"> <f:setPropertyActionListener value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" /> </p:commandButton>

2º Esse “resleitorSelecionado” precisa ser o msm objeto que esse “resleitor”.
Então altere isso: private String resleitorSelecionado;

3º Esse cara:

[code]public void setResleitorSelecionado(String resleitorSelecionado) {
this.resleitorSelecionado = resleitorSelecionado;
atualizarCodigoDeUsuario();
}

public void atualizarCodigoDeUsuario() {

       codigoUsuarioBibParaRegistro = getResleitorSelecionado();  

} [/code]

Acho que agora fica mais claro pra entender !![/quote]
Bem, ainda to “apanhando” no negócio aki…No meu bean. fiz o seguinte:

 private Usuariobib resleitorSelecionado;

    public Usuariobib getResleitorSelecionado() {
        return resleitorSelecionado;
    }

    public void setResleitorSelecionado(Usuariobib resleitorSelecionado) {
        this.resleitorSelecionado = resleitorSelecionado;
    atualizarCodigoDeUsuario();
    }

    public void atualizarCodigoDeUsuario() {
        codigoUsuarioBibParaRegistro = getResleitorSelecionado().getUsuCodigo().toString();
    }

e no meu xhtml: (botão que seleciona o usuario dentro do dialog)

 <p:commandButton immediate="true" update="@form" value="Selecionar" image="ok" title="Selecionar" actionListner="#{reservasJsfBean.atualizarCodigoDeUsuario}">       
                                                <f:setPropertyActionListener  value="#{usuario}" target="#{reservasJsfBean.resleitorSelecionado}" />       
                                            </p:commandButton>

Se o cara souber o código dele está salvando no banco blz, porém se ir selecionar pelo dialog, não tá nem aparecendo o nome do usuario nos input da tela e nem gravando no banco =/ … Pode continuar ajudando cara??? Vlw…

Aqui ó : codigoUsuarioBibParaRegistro = getResleitorSelecionado().getUsuCodigo().toString();

Deixe ele igual ao método que busca pelo codigo do usuário …

[quote=Diego Adriano]Aqui ó : codigoUsuarioBibParaRegistro = getResleitorSelecionado().getUsuCodigo().toString();

Deixe ele igual ao método que busca pelo codigo do usuário …[/quote]
Blz, vou testar aki e posto o resultado…Vlw…