首页 > 解决方案 > 使用 preRenderView,以正确的方式将用户重定向到其他页面

问题描述

我有一个dashboard.xhtmlJSF 页面和相应的托管 bean DashboardManager。在 JSF 页面中,我通过从托管 bean 调用方法来检查用户是否登录,如果isUserLoggedIn()未登录,则使用<f:event> preRenderView. 但是这里的问题是托管 bean 已经实例化并且DashboardManager注入了 EJB,并且标有@PostConstruct注释的 init() 方法也被执行,调用了其他几个方法来访问 DB,当然我不想这样做,因为用户是尚未登录。是否有任何其他有效的方法可以将用户重定向到另一个页面,而不需要调用标有 @PostConstruct 的 init() 方法?谢谢。

@ManagedBean
public class DashboardManager {
@PostConstruct
public void init() {
    findPendingCustomerOrders(); // hits DB and fetch data
    findDeliverables();// fetch data
    findProductBelowMinStock();  // fetch data
    // some more methods fetching data from DB
    }
}

标签: jsf

解决方案


推荐阅读