Отсутствует библиотека тегов при использовании GroovyPagesTemplateEngine

StackOverflow https://stackoverflow.com/questions/1616861

  •  06-07-2019
  •  | 
  •  

Вопрос

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

    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%, как находятся различные ресурсы, такие как библиотеки тегов, но все мои библиотеки тегов работают нормально, как и обычные библиотеки 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) 
Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top