【发布时间】:2010-11-29 12:55:28
【问题描述】:
是否可以在 before-invokeApplication-phaselistener 中获取对待执行 managedbean 的引用?
在调用应用阶段之前,应该明确哪个 managedBean 将执行该方法。
为了这个例子,假设有 1 个主管理 bean 来处理 1 个 jsf 页面。
所以我需要的基本上是:
- 用户从菜单访问程序
- 因为它是从菜单访问的,所以会调用主管理 bean 的 init() 方法来初始化诸如准备数据、进行授权检查等内容
- 在从菜单重新访问之前,后续提交不再需要调用 init() 方法
为了实现第 2 点,我正在考虑拦截其中一个阶段
我查看了有关在阶段实现中获取托管 bean 的 API 文档,但我似乎找不到任何内容。
输入这个问题后,我意识到我可以在 @PostConstruct 或托管 bean 的构造函数中执行此操作,但这只会在第一次构造 bean 时执行,我需要在每次 jsf 被调用时调用该方法从菜单访问。
有什么建议吗?
问候,
阿尔伯特·坎
【问题讨论】: