groovypagestemplateEngine을 사용할 때 taglib 누락
문제
나는 내 자신의 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"을 찾을 수 없다는 것입니다.
제휴하지 않습니다 StackOverflow