Подтвердить что ты не робот

Play Framework - перенаправление с параметрами

Я пытаюсь выяснить, как сделать перенаправление внутри действия контроллера в Play (2.0) с помощью Scala.

Переадресация с использованием

Redirect(routes.Application.index)

работает просто отлично.

То, что я не могу понять из документов, API или Google, - это добавить параметры к вызову.

Я из Grails, где это можно сделать легко:

перенаправить действие: "index", params: [ "key": "value" ].

Единственным способом, который я нашел, является вызов Redirect с использованием строкового url и строки запроса, что кажется неудобным.

В принципе, я хотел бы использовать Redirect (Call) каким-то образом, но я не могу создать объект Call, используя обратную маршрутизацию.

Я что-то теряю/не получаю концепцию в Play/ Scala?

Спасибо в Advance!

4b9b3361

Ответ 1

Ellou

Маршрут - это просто функция, поэтому вы можете передавать аргументы как обычно:

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

Этот фрагмент происходит от http://www.playframework.org/documentation/2.0/ScalaRouting (внизу)

Ответ 2

Вы также можете избежать создания другой функции только для этого в вашем контроллере. В конфигурации маршрута вы можете просто добавить что-то вроде этого:

  GET  /google  @controllers.Default.redirect(to = "http://google.com")