有没有方法通过el上下文或应用程序上下文获取PhaseListener的当前实例?JSF 2 - 从托管bean获取PhaseListener的实例
1
A
回答
3
你可以连接到使用<f:phaseListener>
代码的网页上这样的UIViewRoot的阶段监听器:
List<PhaseListener> phaseListeners = FacesContext.getCurrentInstance().getViewRoot().getPhaseListeners();
它返回附加到此UIViewRoot实例的PhaseListener实例的列表。
如果你想获得所有在faces-config.xml文件中注册的全球阶段监听器,你可以从的LifeCycle实例像这样让他们:
FacesContextFactory contextFactory = (FacesContextFactory)FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
LifecycleFactory lifecycleFactory = (LifecycleFactory)FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Iterator<String> lifecycleIds = lifecycleFactory.getLifecycleIds();
while (lifecycleIds.hasNext()) {
String lifecycleId = lifecycleIds.next();
Lifecycle lifecycle = lifecycleFactory.getLifecycle(lifecycleId);
PhaseListener[] phaseListeners= lifecycle.getPhaseListeners();
}
-1
您可以在JSF 2.0中获得当前PhaseID:
PhaseId currentPhaseId = FacesContext.getCurrentInstance().getCurrentPhaseId();
相关问题
- 1. JSF - 托管bean的两个实例
- 2. JSF - 获取SessionScoped Bean实例
- 3. 无法从托管bean实例化Spring Bean,Spring + JSF
- 4. JSF托管bean
- 5. JSF的托管bean
- 6. JSF托管bean&Taglib
- 7. JSF 2本地化(托管bean)
- 8. 无法刷新JPA 2实体注入到JSF 2托管Bean
- 9. 在JSF中从托管bean获取资源文件的路径
- 10. 如何从jersey.servlet.ServletContainer托管bean获取Spring托管bean?
- 11. JSF - 托管bean的变量?
- 12. JSF中的托管bean
- 13. JSF托管的上传bean?
- 14. JSF请求范围的托管bean http-session导致实例化
- 15. 在PhaseListener中记录调用的托管bean操作
- 16. JSF从一个托管bean获取值作为参数
- 17. jsf调用另一个托管bean的托管bean方法
- 18. JSF 2:在阶段侦听器对象中访问托管bean的实例?
- 19. 从托管bean事件重定向JSF
- 20. JSF托管Bean在Servlet中
- 21. JSF托管bean问题
- 22. 属性以JSF托管bean
- 23. JSF托管bean EJB注入
- 24. bean和jsf验证注释inisde托管bean vs实体bean
- 25. 如何将多个JSF 2托管bean实例添加到Java集合?
- 26. 从javascript运行jsf托管bean方法
- 27. 从Servlet访问JSF ViewScoped托管bean
- 28. 将JSF托管bean转换为CDI Bean
- 29. 从托管bean获取nsf资源
- 30. JSF 1.2:从PhaseListener在
你没有回答这个问题。 OP询问如何获取当前注册的PhaseListener,而不是如何获取当前的阶段ID,这确实太明显了。 – BalusC 2012-09-13 18:42:45