Pergunta

Eu tenho processamento de conteúdo GSP dinâmica por meio de tags na minha própria taglib que funciona muito bem usando um código como:

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

Agora, eu não estou 100% certo sobre a forma como os recursos diversos como taglibs são encontrados, mas todos os meus taglibs funcionar bem como fazer o normal, Grails libs.

O problema que tenho é tags que de AcegiSecurity não são encontrados no conteúdo processado deste modo:. Por exemplo

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

Então, como faço para obter GroovyPagesTemplateEngine para encontrar as tags AcegiSecurity? Eu estou supondo que pode ser algo a ver com ApplicationContext ou ServletContext.

editar --- Parece que poderia ser um problema namespace sobrecarregado:

    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) 
Foi útil?

Solução

O taglib faz existir o problema foi que a biblioteca que eu uso para limpar o html bastante converte corretamente as tags para minúsculas desde html não é sensível a maiúsculas. O problema com isso é que Grails tags são caso sensível, assim que a tag "isLoggedIn" não foi encontrado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top