Как создать «клон» контроллера в Grails? - PullRequest
2 голосов
/ 26 июня 2009

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

У меня есть 2 меню с разными именами, т.е. «Редактирование пользователя» и «Редактирование клиента». Оба фактически используют один и тот же контроллер (т.е. UserController) и один и тот же домен.

Я пытался создать псевдоним для этого в UrlMappings например: "/ client / edit /" (контроллер: "пользователь", действие: "редактировать")

но в основном макете, кажется, не распознается как "клиент", а как "пользователь"

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

Большое спасибо.

1 Ответ

0 голосов
/ 08 июля 2009

используйте фильтр, чтобы добавить к модели имя контроллера и изменить его для соответствия:

например. поместите это в /grails-app/conf/MenuAddingFilter.groovy

class MenuAddingFilter {
   static filter = {
      all(controller:'*', action:'*') {
         after = { model ->
            model.menuName = controllerName.replace("Controller","")
         }
      }  
   }   
}

тогда на вашей странице .gsp у вас будет свойство menuName, доступное для использования. см. http://www.grails.org/Filters для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...