对于Play 2.5来说,这是一个菜鸟问题。
我有一个简单的Action(最终)从表中删除一个元素。 此操作由定义为POST的路由触发。
POST /delete/:id @com.test.controllers.XController.delete(id: String)
当删除成功时,代码当前解析为名为“success”的视图(内部是带有自定义消息参数且在可选对象上的success.scala.html)。
Future.successful(Ok(success(Some("Item was deleted"), customObject)))
但是,用户仍然可以尝试按F5刷新页面,从而再次提交表单。为避免这种情况,一种选择是重定向到“成功”视图。
我不能,因为上帝的爱,弄清楚如何重定向到这个观点。您似乎只能通过反向路由或使用URL进行重定向。
答案 0 :(得分:1)
如果您需要播放表单(link on spec),请先采取第一种方法: 你可以直接传递参数:
val df = form().bindFromRequest()
return redirect(routes.Application.somePlace(df.get("action"),
df.get("id")))
如果您不需要Scala表单,可以通过Redirect
生成redirect:
GET /hello/:name controllers.Application.hello(name)
// Redirect to /hello/Bob
def helloBob = Action {
Redirect(routes.Application.hello("Bob"))
}