문제

나는 내 자신의 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)
    }

이제 Taglibs와 같은 다양한 자원이 어떻게 발견되는지 100% 확신하지는 않지만 정상적인 성배와 마찬가지로 모든 Taglib가 잘 작동합니다.

내가 가진 문제는 그 것입니다 AcegiSecurity이런 방식으로 처리 된 콘텐츠에서는 태그가 없습니다 : 예 :

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

그래서 어떻게 얻을 수 있습니까? GroovyPagesTemplateEngine 찾기 위해 AcegiSecurity 태그? 나는 그것이 관련이 있을지도 모른다 ApplicationContext 또는 ServletContext.

편집 --- 과부하 된 네임 스페이스 문제인 것 같습니다.

    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) 
도움이 되었습니까?

해결책

Taglib는 HTML이 CASE에 민감하지 않기 때문에 HTML을 정리하는 데 사용하는 라이브러리가 태그를 소문자로 올바르게 변환한다는 것입니다. 그 문제는 Grails 태그가 경우에 민감하기 때문에 태그 "Isloggedin"을 찾을 수 없다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top