GSP 模板无法从另一个模板检索传递的模板
GSP Template fails to retrieve passed template from another template
我正在处理 Grails 2.4.4 项目。我的 gsp
页面( 不是 模板)上有以下代码,它调用一个调用另一个模板的子模板:main gsp page > gsp template > yet another gsp template
:
main.gsp
...
<g:render template="/details" model="[param_one:'param_one', param_two:'param_two']" />
...
_details.gsp
...
<p>On details: ${param_one}</p>
<g:render template="/segments/segment-one" model="[param_two:'${param_two}']" />
...
_段-one.gsp
<p>Segment One: ${param_two}</p>
现在渲染整个页面时,它只显示如下内容:
On details: param_one
Segment One: ${param_two}
为什么 _segment-one.gsp
无法呈现传递的 param_two
?是否不允许从另一个 template
渲染中获得 template
?谢谢大家。
我通过添加 params
关键字修复了 _segment-one.gsp
中的代码:
<p>Segment One: ${params.param_two}</p>
^^^^^^
首先,您可以让 gsp 页面调用无限期调用模板的模板。调用模板时,实际上是在运行时将模板的代码包含到包含页面中;换句话说,模板是调用者的一部分,默认情况下它可以访问调用者可见的所有对象。您所要做的就是将您的第二个收录更改为:
<g:render template="/segments/segment-one" />
现在,模板段 1 已经可以访问 param_one 和 param_two。如果您要传递在您所在的本地模板(或 gsp)中创建的新内容,您只需要再次使用 model 标签。
我正在处理 Grails 2.4.4 项目。我的 gsp
页面( 不是 模板)上有以下代码,它调用一个调用另一个模板的子模板:main gsp page > gsp template > yet another gsp template
:
main.gsp
...
<g:render template="/details" model="[param_one:'param_one', param_two:'param_two']" />
...
_details.gsp
...
<p>On details: ${param_one}</p>
<g:render template="/segments/segment-one" model="[param_two:'${param_two}']" />
...
_段-one.gsp
<p>Segment One: ${param_two}</p>
现在渲染整个页面时,它只显示如下内容:
On details: param_one
Segment One: ${param_two}
为什么 _segment-one.gsp
无法呈现传递的 param_two
?是否不允许从另一个 template
渲染中获得 template
?谢谢大家。
我通过添加 params
关键字修复了 _segment-one.gsp
中的代码:
<p>Segment One: ${params.param_two}</p>
^^^^^^
首先,您可以让 gsp 页面调用无限期调用模板的模板。调用模板时,实际上是在运行时将模板的代码包含到包含页面中;换句话说,模板是调用者的一部分,默认情况下它可以访问调用者可见的所有对象。您所要做的就是将您的第二个收录更改为:
<g:render template="/segments/segment-one" />
现在,模板段 1 已经可以访问 param_one 和 param_two。如果您要传递在您所在的本地模板(或 gsp)中创建的新内容,您只需要再次使用 model 标签。