有沒有方法通過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