Конкатенация строк в UrlMappings? - PullRequest
0 голосов
/ 04 июня 2010

Я пытаюсь создать отдельные контроллеры для администратора в моем приложении. Пока что у меня есть что-то вроде этого:

"/admin/article/$action?/$id?"(controller:"adminArticle")
"/admin/comment/$action?/$id?"(controller:"adminComment")

И так для всех административных контроллеров. Я хотел бы сделать это проще, попробовал:

"/admin/$controller?/$action?/$id?"(controller:"admin" + controller[0].toUpperCase() + controller[1..-1])

и

"/admin/$controller/$action?/$id?"(controller:"admin$controller")

но ни одно из этих решений не сработало. Ты хоть представляешь, как я могу сделать это отображение более динамичным?

Ответы [ 2 ]

1 голос
/ 25 апреля 2012

Вы можете настроить значение контроллера, если используете замыкание.

/$mode/$contr"{
  action = "someAction"
  controller = {
    if (params.mode == "api") {
      return params.contr+"API"
    } 
    else {
      return params.contr
    }
  }
  constraints {
    mode inList:["menu", "api"]
  }
}

Надеюсь, это поможет!

0 голосов
/ 04 июня 2010

Может быть, вам не следует использовать слово «контроллер».Я не пробовал, но это может сработать:

"/admin/$contr/$action?/$id?"(controller:"admin$contr") // if first letter of contr is upper case
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...