我不确定这是否没有按预期工作,这只是我感到困惑。
我想做的是异步延迟一个动作,await(int millis)
我似乎可以成为朋友。
这是发生的事情:
1. 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
.
应用程序/控制器/Application.java
public static void something() {
await(500);
// Here be business
index();
}
3. Play 引发应用程序错误:“模板 Application/something.html 不存在”。
因此,当在执行被暂停/恢复后被render()
调用时,它会尝试渲染 的模板,这当然不存在。Application.index
Application.something
Application.something
如果我删除await(500)
一切正常(发出 302index
并按预期呈现)。
我可以强制重定向
redirect("/");
并得到我想要的结果,但这感觉很难看。
我也可以设置
request.action = "Application.index";
await
按预期在和 作品中的渲染Application.index
(实际上是作品中的魔力)之后手动进行Controller.template()
。
所以基本上,一切都好,我被迫在调用之后使用字符串await
而不是方法调用,还是有点不对劲?
干杯,托拜厄斯。