2012-06-25 37 views
2

我有一個基本的POST表單正在提交。每次提交表單時,都會更新數據庫。 如果有人試圖刷新頁面,您會收到「確認表單重新提交?」。無論如何要避免這種情況? 我知道這是可以實現的PHP,但這不是一個選項在這裏避免在Play Framework 2.0中重新提交表單

謝謝!

回答

6

接受表單POST的動作應將數據提交到數據庫,然後重定向到另一個動作。這樣,當用戶點擊刷新時,他們只會讀取數據,而不會寫入數據。

下面是一個例子:

public Result terminate(Long depositKey) throws Exception { 
    depositsService.cancelScheduledDeposit(getCurrentUser().memberKey(), depositKey); 
    return redirect(routes.ControllerFactory.deposits.terminateConfirmation(depositKey)); 
    } 
+2

這就是所謂的郵政/重定向/獲取:http://en.wikipedia.org/wiki/Post/Redirect/Get –

+0

謝謝,這個工作! – by0

+1

@Omar:很高興爲你效勞。你介意點擊複選標記接受我的答案嗎?我在這個遊戲中的聲望,而不是幫助人民; P哈哈哈只是在開玩笑,但認真,我會採取一個綠色的勾號請:D – Samo