我有 2 个不同的用户,一个用户和一个 adminUser。
登录屏幕示例:
<h:panelGroup id="messagePanel" layout="block">
<rich:notifyMessages stayTime="2000" nonblocking="true"/>
</h:panelGroup>
<h:inputText id="username" value="#{LoginManager.userName}" title="#{bundle.CreateEmployeesTitle_employeeNo}" required="true" requiredMessage="#{bundle.LoginUsernameRequired}" pt:placeholder="Username"/>
<h:inputText id="password" value="#{LoginManager.password}" title="#{bundle.CreateEmployeesTitle_employeeNo}" required="true" requiredMessage="#{bundle.LoginPasswordRequired}" pt:placeholder="Password"/>
<h:commandLink action="#{LoginManager.loginAction}" value="#{bundle.LoginTabTitle}" styleClass="linkbutton" />
我的 loginManager 验证用户名和密码是否匹配并存在于数据库中,并在用户 admin 时返回 loginPassAdmin,在用户 user 时返回 loginPass,在用户名和密码不匹配或不存在时返回 loginFail。所以在我的登录屏幕上,我想在 loginAction 以 loginFail 返回时显示一个通知,如果可能的话,可能在同一页面上?
一块登录管理器:
if (userStatus != null) {
if (userStatus.equalsIgnoreCase("adminUser")) {
action = "loginPassAdmin";
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("username", userName);
} else if (userStatus.equalsIgnoreCase("nonAdmin")) {
action = "loginPass";
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("username", userName);
} else {
action = "loginFail";
}
} else {
action = "loginFail";
}
return action;
}
谢谢/亲切的问候