2

我刚刚从 2.1.2 升级到 grails 2.2.4。在我的本地一切正常,但是,当我将 WAR 打包到测试环境中时,我看到了一个奇怪的错误。在使用模板的表单上出现错误:

找不到名称 [form] 和路径 [/base/_form.gsp] 的模板。

但是,此模板(使用 create.gsp 中的)不在基本文件夹下。它位于一个名为 color 的文件夹下(在视图下),两者都create.gsp位于_form.gsp该文件夹下

这是我在 create.gsp 中使用的标签:

<g:render template="form" bean="${mybean}"/>

似乎 grails 假设模板存在于其中,base但它确实存在于color.

4

1 回答 1

5

您收到此错误,

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"
于 2013-08-06T17:27:16.950 回答