3 回答
TA貢獻1891條經驗 獲得超3個贊
簡而言之,存儲在閃存范圍中的變量將在重定向后繼續存在,之后將被丟棄。這在實現Post-Redirect-Get模式時非常有用。
如果您嘗試通過重定向導航到另一個頁面并在加載時訪問屬性,它們將在那里。完成該請求后,閃存中的值將被丟棄。例如:
你在page1.xhtml中,你有一個commandLink,它使用類似這樣的方法重定向到一個新頁面(注意:我將使用隱式導航)。
public String navigateToPageB() {
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("param1", "Hello World!");
return "pageB?faces-redirect=true";}呈現pageB.xhtml時,您可以通過EL表達式訪問這些值,例如
<h:outputLabel value="#{flash['param1']}" />這將顯示“Hello World!” 我們之前在navigateToPageB中保存的字符串。
至于您的問題,通過在資源管理器中打開新選項卡,您無法訪問上一個選項卡上訪問的相同上下文,因此您的變量將不可用。
TA貢獻2065條經驗 獲得超14個贊
把它設置在EL沒有為我做的技巧,但相反,我可以建議將它放入托管bean:FacesContext.getCurrentInstance().getExternalContext().getFlash().keep("oValue"); this.oValue = (ValueClass) FacesContext.getCurrentInstance().getExternalContext().getFlash().get("oValue"); 它適用于GET再次ting頁面,但它在ajax請求后以某種方式中斷+ GET。
添加回答
舉報
