jsf - 使用 preRenderView,以正确的方式将用户重定向到其他页面
问题描述
我有一个dashboard.xhtml
JSF 页面和相应的托管 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
}
}
解决方案
推荐阅读
- angular - Angular 项目中外部加载的 js 的 ngx-translate 的 Cors 问题
- c - 在Linux内核中将带有时间数据的字符串转换为rtc_time结构
- ios - UICompositionalLayout 未按预期工作(垂直表格滚动 + 水平分页)
- android - 删除应用程序(在前台和后台)
- java - Android Studio 活动 - 已关闭
- python - 如何获取 11PM 或任何时间的时间戳,Python 3.6
- react-final-form - 反应最终形式内的链接不起作用
- python - 是否可以通过套接字与 django 进行通信
- python - Python:如何从生成器中检索对 self 对象的引用?
- javascript - 使用 JavaScript 将 Laravel 刀片模板附加/添加到当前视图