使用 GroovyPagesTemplateEngine 时缺少 taglib

发布于 2024-08-08 23:44:16 字数 1153 浏览 2 评论 0原文

我一直在通过我自己的 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% 确定如何找到像 taglibs 这样的各种资源,但我所有的 taglib 都像正常的 grails 一样工作得很好库。

我遇到的问题是,在以这种方式处理的内容中找不到 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) 

I've been processing dynamic GSP content via tags in my own taglib which works just fine using code like:

    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)
    }

Now I'm not 100% sure on how various resources like taglibs are found, but all my taglibs work fine as do the normal grails libs.

The problem I have is that AcegiSecurity's tags aren't found in content processed this way: e.g.

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

so how do I get GroovyPagesTemplateEngine to find the AcegiSecurity tags?
I'm guessing it may be something to do with ApplicationContext or ServletContext.

edit---
Looks like it might be an overloaded namespace problem:

    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) 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离旧人 2024-08-15 23:44:16

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

The taglib does exist the problem was that the library I use to clean up the html quite rightly converts the tags to lowercase since html is not case sensitive. The trouble with that is that grails tags are case sensitive, so the tag "isLoggedIn" is not found.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文