我正在尝试返回我的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;
}
}
}
答案 0 :(得分: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()");
}
}