Grails: мобильная версия контроллера - PullRequest
1 голос
/ 13 января 2012

Мне интересно, пытались ли вы сделать мобильную версию контроллера?

Сейчас я расширяю GrailsLayoutDecoratorMapper с помощью своего пользовательского MobileDecoratorMapper, который применяет layout.mobile.gsp, если обнаружен мобильный телефон, и я хотел бы сделать нечто подобное для некоторых контроллеров. Моя идея состоит в том, чтобы проверить в фильтре, существует ли мобильная версия контроллера (например, SomethingControllerMobile или SomethingController.mobile.groovy) и, если это так, перенаправить на него вместо стандартного SomethingController.

Причина в том, что я хотел бы избегать большого количества операторов if / else внутри самого контроллера, чтобы проверить, является ли он мобильным, и если это так, сделать что-то по-другому - я не хочу код спагетти.

Имеет ли это смысл для вас, и если да, то пытались ли вы сделать нечто подобное и каков был ваш подход? Единственное, что приходит мне в голову, это проверка файлов в фильтре, но это не выглядит как правильное решение, я думаю, что это должно быть возможно сделать на уровне urlmapping, где на основе url grails решает, какой контроллер вызова

1 Ответ

2 голосов
/ 13 января 2012

Плагин Spring Mobile позволяет условно выполнять код контроллера для мобильных устройств довольно элегантно

def list = {
  def view = "list"
  withMobileDevice {
        // mobile-specific logic goes here, in this simplistic example we
        // just change the view, but you can do anything you like....
        view = "mobileList"
  }
 render(view: view, model: [list: listInstance])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...