簡體   English   中英

將Bean重定向到外部站點的JSF 1.2 IllegalState異常

[英]JSF 1.2 IllegalState Exception from backing bean redirect to external site

我正在使用命令按鈕將表單發布到支持bean方法。 在該方法的最后,我嘗試在響應中設置各種選項后嘗試重定向到外部站點。 由於重定向,我收到了IllegalState異常。

at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendRedirectWithStatusCode(WebAppDispatcherContext.java:571)
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendRedirect(WebAppDispatcherContext.java:528)
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendRedirect(SRTServletResponse.java:1234) 
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:426) 
at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:181) 

這是支持bean方法中的問題代碼:

if ( redirectPage != null ) {
    logger.debug("attempting redirect: " + redirectPage);
    try {
        getFacesContext().getExternalContext().redirect(redirectPage);
        FacesContext.getCurrentInstance().responseComplete();
    } catch (IOException ioException) {
        ioException.printStackTrace();
    }
}

return result;

我意識到return語句是不必要的,不應到達,但是在填充redirectPage的情況下,這是必需的功能。 我不能使用導航規則來設置動態外部網站重定向,對嗎? 我能做什么?

仔細觀察異常,似乎導航處理程序正在引起問題。 顯然,JSF不喜歡我跳出一個commandButton調用的方法,有什么想法可以解決此問題嗎?

我剛剛意識到了我的問題-我已經習慣於使用JSF的導航規則功能,以至於我完全忽略了這樣一個事實:如果不打算使用導航規則,則不需要返回值! 例外是告訴我導航存在問題,但我沒有看到。

對我來說,最簡單的解決方法是將commandButton操作設置為沒有返回值且不受任何導航規則約束的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM