我正在尝试在我的网页中使用的模板中包含一个菜单,问题是我的菜单会根据连接的用户类型而变化。哦,我正在使用 jsf。所以 page->template->menu 在第一页 login.xhtml 中的一个按钮将用户带到 bean:
<p:commandButton id="logins" value="login" action="#{UtilisateurBean.connection_role}" update="growl"/>
在 utilisateurBean 中,方法 connection_role 如下所示:
public String connection_role() {
Utilisateur authentifi = resp.seConnecter_role(login, password, typeRole);
FacesMessage msg;
FacesContext myFacesContext;
if ("_".equals(authentifi.getLogin())) {
msg = new FacesMessage("Compte incorrect", "Login password incorrect");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
myFacesContext = FacesContext.getCurrentInstance();
myFacesContext.addMessage(null, msg);
return null;
} else if (authentifi != null) {
Utilisateur user = resp.findById(idutilisateur);
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
if (typeRole.equals("Administrateur")) {
cleanForm();
setMenu("menuAdministrateur.html");
session.setAttribute("user", user);
return "listItem.xhtml";
} else if (typeRole.equals("Administrateur Audit")) {
cleanForm();
setMenu("menuAdministrateurAudit.html");
session.setAttribute("user", user);
return "Administrateur_Audit";
} else if (typeRole.equals("Planificateur")) {
cleanForm();
setMenu("menuPlanificateur.html");
session.setAttribute("user", user);
return "Planificateur";
} else {
cleanForm();
setMenu("menuAuditeur.html");
session.setAttribute("user", user);
return "Auditeur";
}
}
return null;
}
在我的模板中,我放了:
现在,当我单击登录按钮时,该页面无处可去,用户已连接,我用一些 printlns 进行了检查,但没有调用任何其他页面。
Ps:如果我用它替换 <ui:insert name="#{UtilisateurBean.menu}" ></ui:insert>
它就 <ui:insert name="menuAuditeur.xhtml" ></ui:insert>
可以了,并且新页面出现