2014-09-04 20 views
0

我試圖獲得ManagedBean的返回。我有一個對話框來登錄用戶,我在managedbean上有一個方法來檢查用戶是否存在。如果用戶存在,則返回true,否則返回false。打開p:對話框中的動作偵聽器方法

我想如果用戶存在對話框隱藏,如果不是對話框顯示。

我該怎麼做?

XHTML

<h:form id="UsuarioLoginForm"> 
    <p:growl id="growl" life="3000"/> 
     <p:panelGrid columns="2" id="display"> 

      <p:outputLabel value="Login"/> 
        <p:inputText 
          required="true" 
          value="#{usuarioMB.bean.login}"        
          maxlength="50"        
          onkeyup="strToUpper(this)" 
          /> 

      <p:outputLabel value="Senha"/> 
        <p:password 
          required="true" 
          value="#{usuarioMB.bean.senha}"        
          maxlength="12"        
          onkeyup="strToLower(this)" 
          /> 

      <p:commandButton value="Login" 
          actionListener="#{usuarioMB.isLoginExiste(usuarioMB.bean)}" 
          > 
       <f:ajax execute="@form" render="@form"/> 
      </p:commandButton> 

     </p:panelGrid> 
    </h:form> 
</p:dialog> 

Managed Bean的

/** check if login exist */ 
    public Boolean isLoginExiste(Usuario u){ 
     if(new CustomUsuarioDAO().isLoginExiste(u.getLogin(), u.getSenha())){ 
      return true; 
     }else{ 
      return false; 
     } 
    } 


    } 
+1

請發表您的答案對於答案部分的問題,而不是問題本身。您可以將其標記爲已回答。 – 2014-09-04 19:27:58

回答

0

解決

/** check if login exist */ 
    public void isLoginExiste(){   
     RequestContext rctx = RequestContext.getCurrentInstance(); 
     boolean existe = new CustomUsuarioDAO().isLoginExiste(getLogin(), getSenha());  
     if(existe){ 
      rctx.execute("UsuarioLoginDialog.hide()"); 
     }else{ 
      FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro","Usuário ou senha inválido")); 
      rctx.update("UsuarioLoginForm:growl"); 
      rctx.execute("UsuarioLoginDialog.show()");   
     }  
    } 
相關問題