Domanda

Ho elaborato contenuti GSP dinamici tramite tag nel mio taglib che funziona perfettamente usando codice come:

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

Ora non sono sicuro al 100% su come vengano trovate varie risorse come i taglibs, ma tutti i miei taglibs funzionano bene come fanno le normali librerie grails.

Il problema che ho è che i tag AcegiSecurity non si trovano nei contenuti elaborati in questo modo: ad esempio

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

quindi come posso ottenere GroovyPagesTemplateEngine per trovare i tag AcegiSecurity ? Immagino che potrebbe avere a che fare con ApplicationContext o ServletContext .

Modifica --- Sembra che potrebbe essere un problema di spazio dei nomi sovraccarico:

    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) 
È stato utile?

Soluzione

Il tagliob esiste, il problema era che la libreria che uso per ripulire l'html converte giustamente i tag in minuscolo poiché HTML non fa distinzione tra maiuscole e minuscole. Il problema è che i tag grails sono case sensitive, quindi il tag " isLoggedIn " non è stato trovato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top