다음을 통해 컨트롤러 내에서 사용자 정의 태그 라이브러리에 인스턴스를 얻기 위해 시도 :Grails를 - 애플리케이션 컨텍스트를 통해 얻기 태그 라이브러리 콩
def myTagLib = grailsApplication.mainContext.getBean('com.mypackage.MyTagLib')
내가받을 다음과 같은 오류 : 그러나
No bean named 'com.mypackage.MyTagLib' is defined. Stacktrace follows: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'com.mypackage.MyTagLib' is defined
, 문제없이 taglib에 내장 된 인스턴스를 얻을 수 있습니다.
def g = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib')
01에 따르면,이 작동합니다. 누구든지 내 taglib을 유효한 bean으로 인식하지 못하는 이유를 알고 있습니까? 당신의 태그 라이브러리가 (좋은 방법이 일반적이다) 네임 스페이스하면 내가 Grails는 문서의 Section 8.3.5에 따르면 Grails를 2.4.0
위의 내용은 컨트롤러 또는 다른 taglib에는 해당되지만 실제로는 그렇지 않습니다. 예를 들어 src/groovy 파일에서 taglib에 액세스하려면 원래 접근 방식을 취해야합니다. bean을로드하고 있기 때문에 클래스 이름이 아닌 bean의 등록 된 이름을 사용하려고합니다. –