GSP模板无法从另一个模板

时间:2015-05-08 12:08:36

标签: html grails gsp

我正在开发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}']" />
...

_segment-one.gsp

<p>Segment One: ${param_two}</p>

现在,当它呈现整个页面时,它只显示如下内容:

On details: param_one
Segment One: ${param_two}

为什么_segment-one.gsp无法呈现传递的param_two?是否不允许template来自另一个template渲染?谢谢你们。

2 个答案:

答案 0 :(得分:1)

首先,您可以让gsp页面调用无限期调用模板的模板。当您调用模板时,您实际上是在运行时将模板的代码包含在包含页面中;换句话说,模板是调用者的一部分,默认情况下它可以访问调用者可见的所有对象。您所要做的就是将第二个包含更改为:

<g:render template="/segments/segment-one" />

现在,模板段1可以访问param_one和param_two。如果要传递在您所在的本地模板(或gsp)中创建的新内容,则只需再次使用模型标记。

答案 1 :(得分:0)

我通过添加_segment-one.gsp关键字修改了params中的代码:

<p>Segment One: ${params.param_two}</p>
                  ^^^^^^