Question

J'ai traité du contenu SGP dynamique via des balises dans ma propre balise, qui fonctionne parfaitement avec un code tel que:

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

Maintenant, je ne suis pas sûr à 100% de la façon dont diverses ressources telles que taglibs sont trouvées, mais toutes mes taglibs fonctionnent correctement, tout comme les libs normales de Grails.

Le problème que j'ai, c'est que les balises de AcegiSecurity ne figurent pas dans le contenu traité de cette manière: par exemple.

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

alors comment obtenir que GroovyPagesTemplateEngine trouve les balises AcegiSecurity ? Je suppose que cela pourrait avoir quelque chose à voir avec ApplicationContext ou ServletContext .

modifier --- On dirait qu'il pourrait s'agir d'un problème d'espace de nom surchargé:

    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) 
Était-ce utile?

La solution

La balise existe bel et bien, le problème était que la bibliothèque que j’utilise pour nettoyer le code HTML convertit à juste titre les balises en minuscules car le code HTML n’est pas sensible à la casse. Le problème, c’est que les balises Grails sont sensibles à la casse, donc la balise "isLoggedIn". est introuvable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top