15

我试图弄清楚如何使用 Scala 在 Play (2.0) 中的控制器操作中进行重定向。

重定向使用

Redirect(routes.Application.index)

工作得很好。

我无法从文档、API 或 Google 中弄清楚如何向调用添加参数。

我来自 Grails,这可以很容易地完成,如下所示:

重定向操作:“index”,参数:[“key”:“value”]。

我发现的唯一方法是使用字符串 url 和查询字符串调用 Redirect,这看起来很尴尬。

基本上我想以某种方式使用 Redirect(Call) ,但我不知道如何使用反向路由创建 Call 对象。

我错过了什么/没有在 Play/Scala 中得到这个概念吗?

提前致谢!

4

2 回答 2

17

埃卢

路由只是一个函数,所以你可以像往常一样传递参数:

// Redirect to /hello/Bob
def helloBob = Action {
    Redirect(routes.Application.hello("Bob"))    
}

这个片段来自http://www.playframework.org/documentation/2.0/ScalaRouting(在底部)

于 2012-04-04T21:38:32.203 回答
1

您还可以避免在控制器中为此创建另一个函数。在您的路线配置中,您可以简单地添加如下内容:

  GET  /google  @controllers.Default.redirect(to = "http://google.com")
于 2015-03-01T06:37:05.567 回答