我不確定這是否按預期工作,它只是讓我感到困惑。Controller.await(int millis)之後的動作鏈接不重定向
我想要做的是異步延遲一個動作,並且我似乎能夠成爲朋友。
這裏發生了什麼:
Application.index
顯示發送一個POST到Application.something
形式。
應用程序/控制器/ Application.java
public static void index() {
render();
}
應用/視圖/應用/ index.html中
#{form @Application.something()}
<input type="submit">
#{/form}
2.Application.something
就執行操作和然後鏈接回index
。
的app/controllers/Application.java
public static void something() {
await(500);
// Here be business
index();
}
播放引發應用程序錯誤:「模板應用/ something.html不存在」。
所以當render()
被稱爲Application.index
在Application.something
執行已暫停後/恢復它試圖渲染Application.something
模板,這當然是不存在的。
如果我刪除await(500)
一切正常(302發佈和index
按預期呈現)。
我可以強制重定向與
redirect("/");
,並得到我想要的結果,但這種感覺難看。
我還可以設置
request.action = "Application.index";
的await
後手動權和Application.index
作品(實際上,在Controller.template()
作品魔術)如預期的渲染。
因此,基本上,是一切OK,我不得不忍受await
而不是方法調用後使用字符串,或者是一些有點過?
乾杯, Tobias。
感謝您的回答,雖然它聽起來像您的解釋是等待1.2版之前沒有使用延續。我認爲1.2之後的等待點是不重新運行整個請求。 :○ – Tobias