2012-09-28 14 views
-1

我的應用程序有一個使用案例,其中有一個頁面,用戶可以編輯數據並按保存或中斷編輯並進行搜索或單擊鏈接。該框架有點奇怪,並使用JavaScript來提交表單,每個鏈接被點擊,所以我們結束了JavaScript和Java混雜的黑客方便對話和檢查未保存的數據變得凌亂,我不得不問它:Canonical Java EE檢查未保存會話數據的方式?

How to exclude components from javascript onkeydown

https://stackoverflow.com/questions/12525020/why-does-this-code-create-a-loop

我要麼得到了對話,從來沒有結束,按「是」「您有未保存的數據是否要comtinue?」做了一個循環到另一個相同的對話框,當我試圖修復它沒有任何工作。

現在該程序在屏幕上工作,但解決方案是混亂的,如果有另一個錯誤或我們注意到我的解決方案影響其他組件會有麻煩。

所以我問你是否知道一個簡單的Java方法來檢查未保存的會話數據?會發生什麼情況是表單呈現給用戶,並且在編輯數據時單擊一個鏈接應該顯示一個對話框,提醒數據未保存。我認爲不用JavaScript是一個更好的解決方案,你可以評論和/或幫助我嗎?

+2

[這與JS/jQuery不難](http://stackoverflow.com/questions/8259090/how-to-detect-unsaved-data-in-form-when-user-leaves-the-page/ 8259403#8259403)。 – BalusC

+0

@BalusC看起來很有趣。問題是我在頁面上也有一個搜索框,它不應該從輸入的搜索中觸發對話框。所以我想我必須從生成對話框的元素中排除搜索框。我一直在想,如果我不能在Java中完成,那麼最好有一個簡單的JS/JQuery解決方案,而不必提交以顯示對話框。 –

+1

只需相應地微調jQuery選擇器。這僅僅是一個開創性的例子。至於Java與JS,我希望你能真正理解Java在web服務器中運行,而不是在webbrowser中運行?所以在你能夠運行Java之前,你必須發送一個HTTP請求。在'onbeforeunload'期間發送HTTP請求在瀏覽器中不可靠。 – BalusC

回答

2

用戶在瀏覽器中輸入數據;除非您提交,否則服務器無法知道這一點。

+0

已提交。這就是愚蠢的情況,當用戶點擊一個鏈接時,表單被提交,所以對話實際上出現在對Java的調用之間。我很抱歉,如果這變得難以理解,這是我一段時間以來最奇怪的用例。 –