我刚从2.1.2升级到grails 2.2.4。一切都在我的本地工作正常,但是,当我将WAR打包到测试环境时,我看到一个奇怪的错误。在使用模板的表单上,我收到错误:
找不到名称[表单]和路径[/base/_form.gsp]的模板。
但是,此模板(使用来自create.gsp)不在基本文件夹下。它位于名为color(在视图下)的文件夹下,这是create.gsp
和_form.gsp
所在的位置
这是我在create.gsp中使用的标签:
<g:render template="form" bean="${mybean}"/>
Grails似乎认为该模板位于base
,但它确实存在于color
中。
答案 0 :(得分:3)
您收到此错误,
template not found for name [form] and path [/base/_form.gsp]
因为Grails在路径中寻找_form.gsp
相对于与呈现父gsp的控制器同名的文件夹。如果您不在渲染标记中提供绝对路径(从views
文件夹开始),则始终如此。
您的_form.gsp页面在哪里?以下是一些示例路径
grails-app/views/_form.gsp
-> <g:render template="/form" ..
grails-app/views/base/_form.gsp
-> <g:render template="/base/form" ...
or -> <g:render template="form" .. //if calling from baseController
因此,如果_form.gsp存在颜色且颜色为grails-app / views / color,则渲染标记中需要以下路径:
<g:render template="/color/form"