我有2個JSP頁面:pay.jsp
,confirmPay.jsp
如何保存兩次調用控制器方法之間的數據?
用戶對pay.jsp
提交數據(信用卡號碼等)。該數據在後端進行驗證,並與其他一些數據一起顯示在confirmPay.jsp
上。一旦他點擊'確認',數據(來自pay.jsp
頁面)用於計費。如果他點擊「取消」,則付款將被丟棄。
這裏最重要的事情是:
- 數據應該修改只在
pay.jsp
- 數據應該在這兩個電話
我知道這個問題類似於How to preserve the ModelMap between form submits?之間被保留。只是想知道什麼適用於這種情況,涉及敏感信息(如信用卡#)。將它放在一個會話中意味着同一個函數中的多個調用會產生問題。
請幫我理解最好的選擇是什麼。
您是否嘗試過答案中提供的解決方案?從Bozho檢查這一行:*除非您使用會話*,否則您無法將所有內容保留在請求中。你有沒有嘗試過知道這一點?另外,如果你把對象放在用戶會話中,你會遇到什麼樣的問題? –
這應該有效,但正如我在問題的底部指出的那樣,這意味着一次只能完成一個事務。另一個要做的事情是將隨機「id」與會話屬性一起存儲,並根據該id區分數據。我只是想知道最好的方法是什麼 – th3an0maly
假設你有一個'PaymentInfo'類的這個信息。然後,你只需要保存它:'session.setAttribute(「paymentInfo」,oPaymentInfo);'並在需要時檢索它:'PaymentInfo oPaymentInfo =(PaymentInfo)session.getAttribute(「paymentInfo」);'。交易完成後(通過'Confirm'或'Cancel'用戶操作),您應該從會話中刪除這些數據:'session.removeAttribute(「paymentInfo」);',就這麼簡單。如果您需要在會話中保存更多數據,則可以存儲'Set',並覆蓋'PaymentInfo'中的'hashCode'和'equals'方法。 –