2012-12-05 65 views
0

我想在用戶離開頁面時清除會話變量。 我有一種形式,我正在顯示一個基於h:selectOneMenu選定值的數據表。 表單有一個取消按鈕,它調用用於清除會話變量的destroy方法。 它一切正常。用戶離開頁面時清除會話變量

問題描述: 我打電話給一個JavaScript函數,它在onunload事件下被調用。 該功能點擊隱藏按鈕'destroyBtn'。該按鈕依次調用destroy()方法。 銷燬方法被調用並且值被清除,但是當我單擊表單或後退按鈕之外的任何鏈接時,頁面導航停止 。我正在使用@Component和@Scope(「會話」)。

function destroy(){ 
alert("Inside Destroy"); 
document.getElementById('MainForm:destroyBtn').click(); 
} 


<h:commandButton id="destroyBtn" styleClass="none" value="Destroy" ajax="false" 
actionListener="#{TutorialsBean.destroy}" /> 




public void destroy(){ 
this.searchTxt=""; 
this.accessType.clear(); 
this.roleCart.clear(); 
this.manager = null; 
this.helpList.clear(); 
this.setComment(""); 
} 

任何幫助將不勝感激。是否有任何其他方式會話可以使用JSF和Spring處理。

+0

你的按鈕似乎沒有調用'destroy()'方法。什麼是'handleDestroy()'方法。這是打字錯誤嗎? – prageeth

+0

這是一個打字錯誤prageeth ... –

回答

0

爲什麼不保持範圍爲視圖?您的數據只會保存到用戶在頁面上並在用戶離開頁面時被清除。

+0

感謝Pavan,我知道這將有所幫助。但是沒有任何方法通過保持範圍作爲會話來清除變量? –

+0

我試過使用View Scope。爲此,我必須使用自定義作用域功能將jsf的視圖範圍移植到Spring。現在,當我離開頁面時,變量會被清除。唯一的問題是,我正在使用一個按鈕打開一個新的對話框,用戶可以使用它選擇一個值它被添加到列表中。現在,打開對話框會創建一個新視圖,我無法保留父頁面上的值。 –

相關問題