在操作侦听器方法中打开p:dialog



我正在尝试返回ManagedBean。我有一个登录用户的对话框,并且在managedbean中有一个检查用户是否存在的方法。如果用户存在,则返回true;如果不返回false。

我想如果用户存在对话框是隐藏的,如果不显示对话框。

我该怎么做?

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>

托管Bean

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

    }

已解决

/** 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()");          
        }       
    }

最新更新