是否有内置机制可以有条件地重定向到另一个 View ?如果他/她已经登录,我希望用户从登录页面重定向到“主页”。
我已经有两种基本方法,但对于第一种我不知道如何实现,第二种是一种肮脏的解决方法。
<meta http-equiv="Refresh" content="0; URL=home.jsf" />
并让它有条件地呈现(EL:#{login.loggedIn}
)<h:panelGroup />
这也将有条件地呈现,包含一些执行重定向的 JavaScript。 有没有办法实现一个甚至另一个更优雅的解决方案? :-)
谢谢
最佳答案
您可以使用 <f:event type="preRenderView">
为此。
例如
<f:event type="preRenderView" listener="#{login.checkAlreadyLoggedin}" />
与
public void checkAlreadyLoggedin() throws IOException {
if (isLoggedIn()) {
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(ec.getRequestContextPath() + "/home.xhtml");
}
}
关于jsf - JSF 中的条件重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8399045/