ユーザーがページを離れたときにセッション変数をクリアしたい。h:selectOneMenu から選択した値に基づいてデータテーブルを表示するフォームがあります。フォームには、セッション変数をクリアするために使用される destroy メソッドを呼び出すキャンセル ボタンがあります。それはすべて正常に動作します。
問題の説明: onunload イベントで呼び出される JavaScript 関数を呼び出しています。この関数は、隠しボタン「destroyBtn」をクリックします。次に、ボタンは destroy() メソッドを呼び出します。destroy メソッドが呼び出されて値がクリアされますが、フォーム外のリンクまたは戻るボタンをクリックするとページ ナビゲーションが停止します。@Component と @Scope("session") を使用しています。
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を使用してセッションを処理できる他の方法はありますか?