2014-02-15 3 views
0

У меня есть следующий маршрут, который не то, что я ищу:Оценка параметров по умолчанию во время выполнения

GET /     controllers.Application.index(someParam = "???") 
GET /:someParam   controllers.Application.index(someParam) 

Значение someParam неизвестно во время компиляции, таким образом, она должна быть оценена во время выполнения.

Фактически, то, что я хотел бы сделать, это то, что index всегда должен переадресовывать в index/someParam. Поэтому, если пользователь переходит к / (корневой путь), они перенаправляются на /someParam (someParam оценивается во время выполнения). Если они идут до /someWrongParam, они также перенаправляются на /someRightParam, то есть someParam может быть в пределах некоторого конечного набора значений. Надеюсь, это не слишком сложно.

Я видел это решение https://stackoverflow.com/a/14984873/2813589, но это казалось слишком сложным.

Как я могу это сделать?

+0

Если это конечный набор значений, вы не можете добавить регулярное выражение к вашим маршрутам? – Ashalynd

+0

@ Ашалинд, это было бы слишком сложно. –

+0

Regex слишком сложный? то я не знаю, что просто ... :) – Ashalynd

ответ

1

Создать два действия вместо

GET /     controllers.Application.blankIndex 
GET /:someParam   controllers.Application.index(someParam) 

blankIndex действия без параметров может получить любое значение, установленное в то onStart метода Global object, а затем просто сделать common redirect к index с данными парами.

Смежные вопросы