當到達渲染響應階段之前首次加載表單時,我想在JSF視圖範圍的輔助bean中做一些處理。我不能在渲染響應階段執行此過程,因爲我有一個動態包含取決於處理。是否有可用於此的事件偵聽器或階段偵聽器?渲染響應階段之前的JSF事件偵聽器
1
A
回答
0
您可以使用編程階段監聽器我假設您正在使用JSF2。下面的類將在您的應用程序中加載階段偵聽器。
@ManagedBean(eager = true)
@ApplicationScoped
public class SomeClass implements Serializable {
@PostConstruct
private void initialize() {
LifecycleFactory factory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Lifecycle lifecycle = factory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
lifecycle.addPhaseListener(new PhaseListenerImpl());
}
}
下面的類你可以在beforePhase方法中定義你的邏輯。
public class PhaseListenerImpl implements PhaseListener {
@Override
public void afterPhase(PhaseEvent pe) {
return;
}
@Override
public void beforePhase(PhaseEvent pe) {
FacesContext fc = pe.getFacesContext();
String viewId = fc.getViewRoot().getViewId();
try {
if(viewId==blah){
//your logic goes here for your view
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
+0
OP需要在視圖構建時運行代碼(如ui:包含在視圖構建時運行而不是視圖渲染時運行)。 – BalusC
+0
該代碼允許我在呈現響應階段之前注入偵聽器。謝謝。 – futureelite7
相關問題
- 1. h:渲染響應階段之前呈現的標題?
- 2. 蠟染事件偵聽器
- 3. 在渲染響應階段未渲染託管Bean屬性值
- 4. 執行沒有渲染階段的portlet事件階段
- 5. 在選擇器應用之前觸發jQuery事件偵聽器?
- 6. 無法在jsf中實現階段偵聽器
- 7. 階段偵聽器和命令按鈕
- 8. 事件偵聽器
- 9. 將事件偵聽器傳遞給事件偵聽器?
- 10. 讓我的全局關鍵偵聽器停止響應事件?
- 11. jQuery將事件偵聽器綁定到另一個之前
- 12. 關閉模塊之前刪除事件偵聽器
- 13. 在設置偵聽器之前會觸發事件嗎?
- 14. JSF 2:在階段偵聽器對象中訪問託管bean的實例?
- 15. 事件偵聽器5
- 16. 事件偵聽器在evently
- 17. ZF3 onRoute事件偵聽器
- 18. reactjs事件偵聽器window.resize
- 19. 刪除事件偵聽器的當前發射事件
- 20. 是否可以使用JSF 1.2動態加載階段偵聽器?
- 21. 渲染屬性不渲染富值面板的值更改偵聽器
- 22. Liferay Portlet和JSF:在渲染階段重定向
- 23. 自動觸發默認偵聽器之前的Hibernate自定義事件偵聽器
- 24. JSF 2 ajax行爲事件偵聽器未在日期觸發
- 25. JW6事件 - 事件偵聽
- 26. 傾聽HTML渲染處理事件
- 27. 將一個事件偵聽器更改爲另一個事件偵聽器?
- 28. 添加事件偵聽器,以形成由事件監聽器
- 29. 事件偵聽環
- 30. 如何在標記的事件偵聽器中使用事件偵聽器,其事件在偵聽時在兩個函數之間切換?
託管bean的'@ PostConstruct'到底有多少? – BalusC
包含將基於get參數進行動態轉換,該參數在UpdateModelView階段被設置到託管bean中。我不確定在此階段之前是否會調用@PostConstruct。 – futureelite7
只要確保參數已設置並可在'@ PostConstruct'中使用。 – BalusC