2011-08-08 45 views
1

我有一張表格可以放在一頁上,但出於美學原因,我想分成兩部分。提交後的原始表單將轉到一個Servlet,它將獲取表單數據並將其插入到數據庫中。但是,我不知道如何在兩個不同頁面上將其分成兩種不同的表單時如何使其工作。我的表單目前在html中,但如果這是解決方案,我可以將它們更改爲JSP。我不想使用隱藏的字段;如果沒有隱藏字段沒有辦法做到這一點,那麼我只會把它放在一個頁面上,因爲我的表單有很多字段,隱藏字段意味着基本上翻倍了大量的代碼。我也只想使用html或jsp的形式;我不想使用JavaBeans,並且我想避免在jsp中使用腳本。我已經通過簡單地將數據庫邏輯分成兩部分並使用最後插入的對象的ID作爲隱藏字段來完成此操作,然後第二個表單使用該ID來更新該項目,但這不是一個優雅的解決方案,並且可能會導致如果一個用戶提交了第一個表單並且另一個用戶提交了第二個表單(錯誤的項目將被更新),則會出現問題。這可能嗎?保留以前的表單數據

回答

0

嗯,這是會話可以用來做的事情之一:將數據從第一頁存儲在HttpSession中,然後在第二頁中檢索會話數據並將其保存到數據庫中。

+0

完美!非常感謝你 – joseph

+0

儘管有一個問題:這是否意味着cookies需要啓用?無論如何這不是問題 – joseph

+0

是的,一般來說會話需要cookies。 – Femi

0
  1. 您可以使用JavaScript分頁(這將節省網頁加載時間。許多在線測試應用採用這種方式) 一)無論是在提交的表單數據的每一部分都會使用Ajax調用發送到服務器。(部分提交) b)或者整個數據將保留在客戶端,直到整個表格完成並提交成功。 (取決於您的應用需求)

  2. 您可以在邏輯上將表單的每個部分與某個唯一ID &會話ID組合相關聯。另外,如果您不希望/需要在會話中存儲整個表單數據,則可以在會話中使用主鍵。它將使數據庫更新過程更容易第二部分或下一部分的表單數據。