Отсутствует taglib при использовании GroovyPagesTemplateEngine - PullRequest
0 голосов
/ 24 октября 2009

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

    def GroovyPagesTemplateEngine groovyPagesTemplateEngine
    ...
    def processGSPContent(model, name, out) {
        log.debug("model is $model")
        Template t = groovyPagesTemplateEngine.createTemplate(model.content, name + ".gsp")
        Writable w = t.make(model: model)
        w.writeTo(out)
    }

Теперь я не уверен на 100% в том, как найти различные ресурсы, такие как taglibs, но все мои taglibs работают нормально, как и обычные библиотеки grails.

У меня проблема в том, что теги AcegiSecurity не найдены в контенте, обработанном таким образом: например,

<g:isLoggedIn>
   You're logged in :-)
</g:isLoggedIn>

так как мне заставить GroovyPagesTemplateEngine найти теги AcegiSecurity? Я предполагаю, что это может быть как-то связано с ApplicationContext или ServletContext.

редактировать --- Похоже, что это может быть перегружена проблема пространства имен:

    Caused by: org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Tag [ifnotloggedin] does not exist. 
No tag library found for namespace: g at home_pmcneil_devel_Groupie_grails_app_views_display_page_gsp.run(home_pmcneil_devel_Groupie_grails_app_views_display_page_gsp:32) 

1 Ответ

2 голосов
/ 24 октября 2009

Taglib действительно существует, проблема была в том, что библиотека, которую я использую для очистки html, совершенно правильно преобразует теги в нижний регистр, так как html не чувствителен к регистру. Проблема в том, что теги grails чувствительны к регистру, поэтому тег isLoggedIn не найден.

...