使用GroovyPagesTemplateEngine时缺少taglib

时间:2009-10-24 03:34:43

标签: grails groovy taglib

我一直在通过我自己的taglib中的标签处理动态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%确定如何找到像taglib这样的各种资源,但我的所有taglib都可以像普通的grails lib一样正常工作。

我遇到的问题是在以这种方式处理的内容中找不到AcegiSecurity的标签:例如

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

那么如何让GroovyPagesTemplateEngine找到AcegiSecurity标签? 我猜这可能与ApplicationContextServletContext有关。

编辑--- 看起来它可能是一个重载的命名空间问题:

    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 个答案:

答案 0 :(得分:2)

taglib确实存在问题是我用来清理html的库非常正确地将标记转换为小写,因为html不区分大小写。麻烦的是grails标签区分大小写,因此找不到标记“isLoggedIn”。

相关问题