我在@ViewScoped mananged bean上有一個init方法。在後構造我加載數據從數據庫。我有一個自定義ExceptionHandlerWrapper來捕獲所有附加信息併發送到錯誤頁面。然而,當@PostConstuct拋出一個異常,我收到一個IllegalStateException,並沒有重定向到錯誤頁面。我已經嘗試了多種組合.....在@PostConstruct中引發的異常在JSF 2.1中導致IllegalStateException
我用盡我這ExcpetionHandler
externalContext.getRequestMap().put(ERROR_BEAN_ID, ERROR_TEXT);
externalContext.dispatch(ERROR_PAGE);
fc.responseComplete();
內部下面這行是什麼原本我。它還doent工作
externalContext.getFlash().put(ERROR_BEAN_ID, ERROR_TEXT);
nav.handleNavigation(fc, null, ERROR_PAGE);
fc.renderResponse();
這些都導致IllegalStateExceptions。我也叫同樣的結果重定向。
您可以全局捕獲@PostConstruct引發的錯誤嗎?
謝謝。是的「響應已經提交」是錯誤取決於我是否使用重定向/調度。我剛剛刪除了preRenderView的使用,因爲我動態配置了來自db和f:validateBean等的元數據的頁面,並且f:標記在調用preRenderView之前被初始化。從而導致頁面驗證無法正常工作。所以如果我需要預先加載的數據,將配置視圖和全局異常處理我堅持與緩衝區解決方案? – user1147953 2012-03-24 02:15:45