PrimeFaces nao atualiza campos que nao estao como required

1 resposta
C

E ai galera, estou com uma duvida cruel, rssrs
tenho um formulario com apenas 3 campos Razao social, Endereco e email, os campos Razão Social e Endereco estao com a tag required.
quando recupero as informaçoes no banco pelo dialog os campos Razao Social e Endereco que sao requierd sao mostrada no formulario o campo email nao.
Alguem sabe me responder porque???
se eu colocar a tag required no email ai mostra normal. mas nao posso fazer isto.

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.prime.com.tr/ui" 
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                template="./default.xhtml">

    <ui:define name="conteudo">
       <h:form id="juridicaform" style="width:700px;margin:0 auto;padding: 10px;text-align:left;margin-top: 0px;">
            
       <p:panel id="painel" header="Cliente Pessoa Juridica" >  
             <h:panelGrid id="panel1" columns="2" cellpadding="5"> 
                  
                   <h:outputText value="Razão Social"/>
                   <p:inputText value="#{clientejuridicaMB.cliente.razaosocial}" size="80" required="true" requiredMessage="Razao Social Obrigatoria"  />
                   <h:outputText value="bairro"/>
                   <p:inputText   value="#{clientejuridicaMB.cliente.bairro}" size="80" required="true" requiredMessage="Razao Social Obrigatoria" />
                   <h:outputText value="Email"/>
                   <p:inputText value="#{clientejuridicaMB.cliente.email}" size="80"  />
             </h:panelGrid>
                  
           <p:commandButton value="Salvar" update="juridicaform,painel,messages" id="ajax2"  
             actionListener="#{clientejuridicaMB.salvar}" /> 
            <p:commandButton value="Limpar" update="juridicaform,painel,messages" id="ajax"  
             actionListener="#{clientejuridicaMB.novo}" /> 
             <p:commandButton  update="painel" value="Pesquisar" onclick="buscaDialog.show()" />
             <p:commandButton value="Atualizar" update="juridicaform,painel" id="btatz" ajax="false" actionListener="#{clientejuridicaMB.teste2}"/>
                      

       </p:panel>
       
        </h:form> 
        
        <p:dialog header="Cadastrados Cadastrados" widgetVar="buscaDialog" resizable="true" id="buscaDlg"  
                showEffect="fade" hideEffect="explode" modal="true" width="750" height="500">
            <h:form id="buscaform" style="width:700px;margin:0 auto;padding: 10px;text-align:left;margin-top: 0px;">
               <h:panelGrid columns="3" cellpadding="5"> 
                   <h:outputText value="Razão Social"/>
                   <p:inputText value="#{clientejuridicaMB.razaosocial}" />
                    <p:commandButton value="Buscar" update="dataTablecli" id="btsair"  
                      actionListener="#{clientejuridicaMB.buscaporrazao}"  /> 
                  </h:panelGrid>     
                
                     <p:dataTable id="dataTablecli" var="cli" value="#{clientejuridicaMB.clientes}" 
                              emptyMessage="Nenhum registro incluido."     
                              paginator="true" rows="5"  
                              paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                              rowsPerPageTemplate="4,10">  
                     <f:facet name="header">  
                         Clientes Cadastrados  
                     </f:facet>  

                     <p:column>  
                         <f:facet name="header">  
                             <h:outputText value="Razão Social" />  
                         </f:facet>  
                         <h:outputText value="#{cli.razaosocial}" />  
                     </p:column>
                     <p:column>  
                         <f:facet name="header">  
                             <h:outputText value="CNPJ" />  
                         </f:facet>  
                         <h:outputText value="#{cli.cnpj}" />  
                     </p:column>
                     <p:column>  
                         <f:facet name="header">  
                             <h:outputText value="Detalhar" />  
                         </f:facet>  
                         <p:commandButton value="Detalhar"  update="juridicoform,messages" id="btsair" ajax="false" 
                                                     oncomplete="buscaDialog.hide();">
                            <f:setPropertyActionListener value="#{cli}" target="#{clientejuridicaMB.clienteselecionado}" />  
                            
                           
                         </p:commandButton>
                         
                     </p:column>    
                     
                 </p:dataTable>    
               
           </h:form> 
        </p:dialog>    
       
       
    </ui:define>

</ui:composition>
Meu Bean
@ManagedBean
@SessionScoped
public class ClientejuridicaMB {
 private ClienteJuridica cliente=new ClienteJuridica();
 private EntityManager mgr;
 private Empresa empresa;
 private int repreSelecionado;
 private String ufselecionada;
 private int cidadeselecionada;
 private long idcliente=0l;
 private String razaosocial;
 private Cliente clienteselecionado;
 
 private List<ClienteJuridica> clientes = new ArrayList<ClienteJuridica>(); 
    /** Creates a new instance of ClienteMB */
    public ClientejuridicaMB() {
        empresa = new Login().getUsuarioLogado().getUsuario().getEmpresa();
    }

    
    
    
    public void buscaporrazao(){
        mgr = JPAUtil.getManager();
        Query q = mgr.createQuery("select c from ClienteJuridica c where c.razaosocial like :razao and c.empresa=:empresa order by c.razaosocial");
        q.setParameter("razao", "%"+razaosocial+"%");
        q.setParameter("empresa", empresa);
        clientes = q.getResultList();
      
        
    }
    public void novo(){
        ufselecionada="";
        cidadeselecionada=0;
        cliente = new ClienteJuridica();
        idcliente=0l;
        
    }
    public void salvar(){
       String cnpj = Utilitario.onlynumber(cliente.getCnpj()) ;
       if (!Utilitario.CNPJ(cnpj)){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"CNPJ Invalido ", "CNPJ"));      
            return;
       }
       mgr = JPAUtil.getManager(); 
       Query q = mgr.createQuery("select count(c) from ClienteJuridica c where c.cnpj = :cnpj and c.empresa=:empresa");
       q.setParameter("cnpj", cliente.getCnpj());
       q.setParameter("empresa",empresa);
       long t = (Long)q.getSingleResult();
       if (t>0 && idcliente==0){
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Cliente Já cadastrado com este cnpj ", "CNPJ"));      
            return;
       }
       Query q2 = mgr.createQuery("select c from Cidade c where c.idibge = :ibge");
       q2.setParameter("ibge", cidadeselecionada);
       Cidade cid =(Cidade) q2.getSingleResult();
       Usuario usr = mgr.find(Usuario.class, repreSelecionado);
       
       mgr.getTransaction().begin();
       boolean incluido=false;
       if (idcliente==0){
           incluido=true;
           cliente.setCidade(cid);
           cliente.setEmpresa(empresa);
           cliente.setUsuario(usr);
           
           mgr.persist(cliente);
       }else{
           
           cliente.setCidade(cid);
           cliente.setUsuario(usr);
           cliente.setId(idcliente);
           mgr.merge(cliente);
       }
       idcliente = cliente.getId();
       mgr.flush();
       mgr.getTransaction().commit();
       if (incluido){
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Cliente Cadastrado com Sucesso!!! ", "OK"));      
       }else{
          FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Cliente Alterado com Sucesso!!! ", "OK"));       
       }
    }
    public void teste2(){
        idcliente = cliente.getId();
        mgr = JPAUtil.getManager(); 
        this.cliente = mgr.find(ClienteJuridica.class, idcliente);
        
        repreSelecionado = this.cliente.getUsuario().getId();
        ufselecionada = this.cliente.getCidade().getSigla();
        changeuf();
        cidadeselecionada = this.cliente.getCidade().getIdibge();
    }

    public Cliente getClienteselecionado() {
        return clienteselecionado;
    }

    public void setClienteselecionado(Cliente clienteselecionado) {
        this.clienteselecionado = clienteselecionado;
        idcliente = clienteselecionado.getId();
        mgr = JPAUtil.getManager(); 
        this.cliente = (ClienteJuridica) mgr.find(Cliente.class, idcliente);
    }
...
..
..
demais gets e sets

Estou usando primefaces 2.2.1 e NetBeans.
OBS o sistema tem mais campos so coloquei os 3 para ficar mais facil de entender.
Espero que alguem possa me ajudar.
Valeu

1 Resposta

ErickRAR

Com senhas eu utilizo “redisplay=true”. Talvez também sirva para campos com required. Não custa nada tentar. :smiley:

Criado 22 de junho de 2012
Ultima resposta 22 de jun. de 2012
Respostas 1
Participantes 2