2013-09-05 1 views
2

При просмотре некоторого кода в grails я заметил, что в определенный момент конкретный код повторно используется в каждом контроллере и передается в представления, чтобы визуализировать секцию вида, которая обычно может быть частью основного макета. Единственная проблема заключается в том, как передать эти значения в основной макет из другой точки вне определенных контроллеров.Лучшая практика для ввода переменных в основной макет Grails

Любая лучшая практика при работе с аналогичными случаями передачи переменных в основной макет?

+3

см. Фильтры: http://grails.org/doc/latest/guide/theWebLayer.html#filters –

+0

Это должен был быть ответ, @IgorArtamonov. :) – dmahapatro

+0

@dmahapatro был слишком коротким для реального ответа –

ответ

4

Вы используете Filter для этого:

Например:

class MyFilters { 

    def filters = { 
     all(controller:'*', action:'*') { 
      before = { } 

      after = { Map model -> 
       // add your common data here 
       model.commonData = ...   
       return true 
      } 

      afterView = { Exception e -> } 
     } 
    } 
} 

after замыкание вызывается после выполнения контроллера, но до того, как вид визуализации. Вы также можете уточнить конфигурацию фильтра (all(controller:'*', action:'*')). Например, вы можете исключить определенные контроллеры или что-то в этом роде.

+0

Только то, что я искал. спасибо –

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

  • Нет связанных вопросов^_^