2009-10-24 7 views
0

G'day tout,taglib manquant lors de l'utilisation GroovyPagesTemplateEngine

J'ai le traitement du contenu dynamique GSP via des tags dans mon propre taglib qui fonctionne très bien en utilisant le code comme:

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 suis Je ne suis pas sûr à 100% de la façon dont diverses ressources comme taglibs sont trouvées, mais tous mes taglibs fonctionnent bien comme le font les bibliothèques de grails normales. Le problème que j'ai est que les étiquettes d'AcegiSecurity ne sont pas trouvées dans le contenu traité de cette façon: par exemple.

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

alors comment puis-je obtenir GroovyPagesTemplateEngine trouver les balises AcegiSecurity? Je suppose que cela peut être quelque chose à voir avec ApplicationContext ou ServletContext.

modifier --- On dirait que cela pourrait être un problème d'espace de noms 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) 

Répondre

1

Le taglib n'existe le problème est que la bibliothèque que j'utilise pour nettoyer le code HTML convertit tout à fait à juste titre les balises en minuscules puisque html n'est pas sensible à la casse. Le problème avec cela est que les étiquettes de grails sont sensibles à la casse, donc l'étiquette "isLoggedIn" n'est pas trouvée.