1
我有一個應用程序在頁面上執行一些ajax更新並使用@ViewScoped ManagedBean。 當用戶提交表單時,我的操作方法重定向到Jsp以使用Cewolf庫顯示圖表。 它工作正常,但似乎豆存活這個重定向。如果用戶單擊Jsp上的後退按鈕,則所有'呈現的ajax'字段都爲空,但'execute ajax'字段顯示以前的值。然後,如果我做一個AJAX更新後,「空白」領域呈現與以往的價值觀......JSF查看作用域bean存活重定向到JSP
重定向代碼:
//save
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, Object> sessionMap = externalContext.getSessionMap();
sessionMap.put("integrator", dataSource);
try
{
FacesContext.getCurrentInstance().getExternalContext().redirect("graph.jsp");
} catch (IOException ex)
{
Logger.getLogger(EquationsBean.class.getName()).log(Level.SEVERE, null, ex);
}
而且我的index.xhtml的一些位:
<h:selectOneMenu value="#{equationsBean.equationsToSolve}" id="neqs">
<f:selectItems value = "#{equationsBean.eqsChoose}" />
<f:ajax render="equationForm" execute ="neqs" listener="# {equationsBean.equationsSelected}"/>
</h:selectOneMenu>
我的期望是,當我重定向到Jsp時,我的豆死了,並且如果 用戶點擊後退按鈕,表單是新鮮的。我已經嘗試過一個過濾器來禁用緩存,但它表現得非常奇怪。此外,我不使用Jsp標籤,只有facelets,並且一些組件根據我的bean狀態具有「呈現」屬性。我應該發佈整個.xhtml,但它有點大...
謝謝,如果有人能幫助我理解這種行爲!
不幸的是,我幫不了你。但是,如果你不使用它的「標籤」,你爲什麼要使用.jsp。首先你要談論的是重定向到.jsp,然後是關於發佈整個.xhtml。我很迷茫。你爲什麼要將facelets與jsps混合? Facelets更好,所以擺脫了JSP。 – Fallup 2012-04-15 20:59:32
由於Cewolf lib以.jsp標記運行,因此我需要它們呈現圖表。 – Fernando 2012-04-15 21:23:57
您是否嘗試將您的bean更改爲Request scope? – 2012-04-15 22:10:35