[英]JPA EntityTransaction Throwing java.lang.IllegalStateException
[英]Redirect form managed bean constructor throwing “java.lang.IllegalStateException”
在我的JSF應用程序中,我需要從托管bean構造函數重定向。 我有以下代碼:
HttpServletResponse httpServletResponse = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
httpServletResponse.sendRedirect("HomeV.jsf");
但這是拋出以下異常:
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:126)
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:419)
我甚至試過以下:
FacesContext.getCurrentInstance().getExternalContext().redirect("HomeV.jsf");
正如在這里與此相關的stackoverflow問題中提到但仍然面臨同樣的異常。
不要在構造函數中這樣做。 我懷疑那里的反應是否處於適當的狀態。 也許您可以嘗試在@PostConstruct
執行此操作,但我不保證它會起作用。
理想情況下,您應該通過bean操作方法中的導航規則進行重定向。 如果要重定向多個操作,可以使用PhaseListener
簡單的上下文初始化時也可以創建Bean,所以這根本不是正確的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.