2014-01-10 47 views
0

眼下,玩,如果我要重新加載當前頁面我必須做這樣的事情:如何使用播放框架刷新當前頁面?

public static Result action(){ 
    if(status==0){ 
     //some actions 
     return redirect(routes.pathToController()) 
    }else{ 
     return redirect(routes.pathToControllerThatDisplaysCurrentPage()) 
} 

如果我想模擬的用戶按下刷新頁面的效果,是可以這樣做:

public static Result action(){ 
    if(status==0){ 
     //some actions 
     return redirect(routes.pathToController()) 
    }else{ 
     return redirect(refreshCurrentPage()) 
} 

我想這樣做的原因是,我沒有保存當前參數,只是讓具有相同的頁面重載如前。

+2

通過重新加載頁面我理解客戶的行動瀏覽器。你想從服務器刷新客戶端頁面?你不是在尋找一個JavaScript代碼嗎? –

+0

JS的後臺工作... – biesior

+0

我想創建一個按鈕,在按下後,會刷新網頁 – Xyzk

回答

1

如果我明白你要做什麼,聽起來像是,當用戶提交表單時,如果表單有錯誤,你希望他們帶回表單頁面,並用表單中的數據?刷新網頁將無濟於事,他們將失去所有輸入數據。重定向也不是實現這一目標的正確方法。您需要重新渲染原始表單頁面 - 您擁有所有提交的數據,因此您可以重新提交。如果數據中缺少任何內容,則可能需要將其添加到隱藏的表單字段中。對於Web應用程序來說,這是一個非常普遍的要求,而重新渲染是實現它的方法。使用Play表單API,這非常簡單,只需將未通過驗證的表單傳遞給呈現它的模板,即可完成。

閱讀文檔在這裏:

http://www.playframework.com/documentation/2.2.x/JavaForms

你想要的是處理表單失敗的部分,基本上你做這樣的事情:

if (userForm.hasErrors()) { 
    return badRequest(views.html.form.render(userForm)); 
} else { 
    User user = userForm.get(); 
    return ok("Got user " + user); 
}