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!
Ответы
Ответ 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")