2011-06-01 139 views
2

我有一个“查看用户”页面读取会话bean当前选定的用户JSF2项目; userHandler.selectedUser。JSF导航问题

页面旨在通过与应用程序的链接浏览参观。

然而,如果用户试图通过直接这个网址点击“查看用户”页......

http://localhost:8080/webapp/userView.jsf

...他们看到上面有没有数据的页面(因为没有userHandler中的所选用户)。

我想我想要做的是将用户重定向到应用程序的主页,如果他们试图直接打出这样说。什么是处理这个问题的简单而优雅的方式?

感谢, 罗布

回答

4

你想勾上preRenderView事件,然后发送重定向如果是这种情况。

<f:metadata> 
    <f:event type="preRenderView" listener="#{bean.preRenderView}" /> 
</f:metadata> 

public void preRenderView() throws IOException { 
    if (userHandler.getSelectedUser() == null) { 
     FacesContext.getCurrentInstance().getExternalContext().redirect("home.jsf"); 
    } 
}