В приложении Grails 3.3 я пытаюсь создать конфигурацию меню, и я хотел бы использовать для этого application.groovy.
application.groovy:
mainmenuconfig {
menuitem_1 {
id = 'menuitem-1'
name='Home'
sub=null
}
menuitem_2 {
id ='menuitem-2'
name='Stammdaten'
sub = submenuitem_2 {
menuitem_2_1 {
id = 'menuitem-2-1'
name ='Stamm-A'
sub=null
}
}}
}
Получение конфигурации через grailsApplication.config.get('mainmenuconfig')
даст мне следующее:
[menuitem_1:[id:menuitem-1, name:Home, sub:null], menuitem_2:[id:menuitem-2, name:Stammdaten, submenuitem_2:[menuitem_2_1:[id:menuitem-2-1, name:Stamm-A]], sub:null]]
Если я посмотрюв getClass()
он говорит, что это org.grails.config.NavigableMap
Теперь, для моего понимания, генерация дерева <UL> ... <LI>
должна выполняться внутри слоя View.Для перебора этой структуры мне понадобится рекурсия, потому что она может быть n уровней глубиной.
Если я смотрю из main.gsp
, я знаю место, куда я хочу вставить дерево меню, но как мне перенести туда данные и где я могу выполнить эту рекурсию?Нужен ли мне контроллер меню, который вызывается из GSP?ИМХО GSP не должен делать такие звонки.А с другой стороны, ни один контроллер не должен генерировать <UL> ... <LI>
деревьев.Мне нужен кусок клея.