尝试渲染GSP时出现以下错误(使用Grails 2.3.6):
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Template not found for name [/shared/mymenu] and path [/shared/_mymenu.gsp]
...long stacktrace omitted
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:745)
在/shared/_mymenu.gsp
:
<g:render template="/shared/mmenustub" model="${['root':appmenu]}">
</g:render>
我在这里遗漏了什么吗?也许是plugin
属性或什么?如果是这样,我错过了什么,它的价值应该是什么?
globalmenu
taglib定义如下:
class GlobalMenuTagLib {
def globalmenu = { attrs, body ->
List<NavigationScheme> allNavigationSchemes = navigationSchemeService.listAll()
def mapped = allNavigationSchemes.groupBy { menu -> menu.appreference }
def registeredApps = registerInfoService.listAllActive()
def activePage = attrs.activepage
def tempName = attrs.tempName?:'anothermenu'
out << render(template: "/shared/$tempName", model:[navscheme: mapped, regApps: registeredApps, activepage:activePage])
}
}
答案 0 :(得分:2)
无法找到/shared/_mymenu.gsp文件。如果这个文件存在于插件中,那么你需要使用&#34;插件&#34;来引用它。 render方法中的参数,以便它知道在哪里搜索文件。
out << render(template: "/shared/$tempName", model:[navscheme: mapped, regApps: registeredApps, activepage:activePage], plugin: "myplugin")
其中&#34; myplugin&#34;是你插件的名称。