我正在尋找一個更好的邏輯來保存用戶輸入的表單值,因爲用戶通過點擊提交按鈕意外地遍歷到下一頁。當他點擊後退按鈕,值應存在。請讓我知道你的想法。如何保存表單值,當用戶不小心轉到下一頁
回答
你可以用Javascript做到這一點,只需在用戶退出頁面時將值保存到cookie並在用戶返回時加載它們即可。
你也可以將其存儲在會話中,但這將是性能密集型服務器端。 如果你有幾個字段(比如說每個用戶總共有2Kb),那麼這可以起作用,尤其是當你的表單被分成3頁以上的頁面時,這個功能尤其有用。
還記得在表單提交到最後一頁後,從會話中過期的對象。
查看關於REST的文章,REST是整個Web基於的架構風格。通過遵循這些有關客戶端狀態存儲的指導原則,您可以讓Web應用程序在出現意外事件時向用戶顯示正確的信息。 http://www.xfront.com/REST-Web-Services.html。實際上,您希望存儲客戶端上的整個上下文(在cookie中,或保存在當前頁面中,並使用POST傳回服務器),而不是利用服務器上的任何上下文。在這樣做的過程中,即使服務器沒有存儲上下文,客戶端也可以使用本地上下文在進程的當前'位置'引導進程。
如果您使用POST
提交表單,並且您使用瀏覽器後退按鈕返回此頁面,那麼您依賴於HTTP響應緩存設置,瀏覽器緩存設置和瀏覽器默認行爲是否會重新生成輸入值與否。大多數會默認重新生成值,但您不希望依賴於客戶端行爲。如果緩存被禁用,那麼例如IE仍然會重新生成值,但FF不會。另外,如果從服務器端強制禁用緩存,則客戶端可能面臨侵入式和瀏覽器特定的「您確定要重新發送數據嗎?」確認對話。
你最好的選擇是提交的數據存儲在會話範圍和形式自己提供Back
按鈕旁邊的Submit
或Next
按鈕。這樣最終用戶可以更直觀地瀏覽回來。
您可以使用HttpSession#setAttribute()
到將請求轉發到下一個頁面之前在會話範圍提交的數據存儲:
HttpSession session = request.getSession();
session.setAttribute("data", data);
在隨後的頁面,當然你可以拿回來通過HttpSession#getAttribute()
,所以您可以添加/修改下一步的新值。
Data data = (Data) session.setAttribute("data");
在頁面中,你可以使用EL通常的方式重新顯示提交的數據在value
屬性輸入字段:
<input type="text" name="foo" value="${data.foo}">
提供Back
按鈕,自己卻不能阻止用戶點擊瀏覽器自己的後退按鈕或按退格鍵。你不能對此做太多的事情。您最好的選擇是嚴格禁用頁面緩存,以便客戶端將獲得「您確定要重新發送數據嗎?」警告。您可以通過將以下標題添加到相關頁面的響應中,從服務器端強制禁用客戶端緩存:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
- 1. 我如何保留上一頁中的值當用戶導航到下一頁
- 2. 如何在轉到另一頁時保存表單數據
- 3. 如何使用Javascript提交表單或轉到下一頁
- 4. 如何使用ajax在cookie中保存多頁表單的當前輸入值
- 5. 如何將ViewPager表單數據保存到下一個頁面android
- 6. 保存表單值到另一個PHP頁面
- 7. PHP與Jquery:如何驗證表單並轉到下一頁
- 8. 保存對象時,如何將當前用戶保存在另一個表中?
- 9. 不能轉到下一頁
- 10. SESSION不轉到下一頁
- 11. 下降到當前用戶存儲核心數據
- 12. 用戶登錄後,將表單值保存到數據庫
- 13. 當用戶不選擇任何值時如何保存默認UIPicker值
- 14. ajax表單轉到另一個頁面,而不是保留在同一頁面
- 15. 將文本保存到下一頁
- 16. JavaScript表單驗證onclick如果成功轉到下一頁
- 17. 如何在不使用本地存儲的情況下移動到下一頁時保留文本框的值?
- 18. 當另一個表單被點擊時保存第一個表單的POST值
- 19. 如何將表單值從一頁傳遞到另一頁?
- 20. Liferay的7如何保存當前頁面值當它從
- 21. 轉到下一頁
- 22. 如何使用下一頁按鈕轉到下一個字段
- 23. 當用戶從下拉菜單中選擇一個名字時,在我的表單中保存一個外鍵
- 24. 如何在下一頁/上一頁後保留單選按鈕值?
- 25. PHP:保存值和Div到另一頁
- 26. 如何保存和檢索表單值,包括使用Cookie的下拉菜單?
- 27. 如何將表單值從一個asp.net頁面轉移到其他頁面?
- 28. 如何使uiviewcontroller翻轉到下一頁?
- 29. 當用戶在橫向模式下翻轉iDevice時如何保持rollingY一致?
- 30. 從當前表單獲取操作值到jquery自動保存