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

Я создал две пользовательские библиотеки тегов, а именно 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.


person Chetan    schedule 30.01.2015    source источник


Ответы (1)


Измените свой тег вкладки вот так. У меня это работает.

out << '<div class="tab-pane ' + (attrs.active == "true" ? 'active' : '') + '" id="' + attrs.id + '">' << body() << '</div>'
person praveen_programmer    schedule 30.01.2015