Я создал две пользовательские библиотеки тегов, а именно tabContainer и tab.
def tabContainer = { attrs, body ->
println("body: "+body())
out << '<div class="tab-content">' << body() << '</div>'
}
а также
def tab = { attrs, body ->
out << '<div class="tab-pane '+${attrs.active == "true" ? "active" : ""}+'" id="'+attrs.id+'">' << body() << '</div>'
}
Теперь я хочу вставить вкладку внутри tabContainer столько раз, сколько пользователь указывает на странице GSP, например:
<myUI:tabContainer>
<myUI:tab id="hello1">Hello1 contents</myUI:tab>
<myUI:tab id="hello2" active="true">Hello2 contents</myUI:tab>
</myUI:tabContainer>
Теперь, если я это сделаю, появится следующая ошибка:
Error processing GroovyPageView: Error executing tag <myUI:tabContainer>: Error executing tag <myUI:tab>: No signature of method: myui.myUITagLib.$() is applicable for argument types: (myui.myUITagLib$_closure14_closure15) values: [myui.myUITagLib$_closure14_closure15@2090a569]
Необходимость: внутри tabcontainer
может быть передано любое количество tab
, переданное пользователем на странице GSP.