【问题标题】:g:set tag inside template body in grailsg:在grails中的模板主体内设置标签
【发布时间】:2015-02-06 02:50:03
【问题描述】:

我在g:render 模板正文中使用<g:set> 标签

<g:render template="/template/panelContainer">
  <g:set var="tomorrow" value="${new Date() + 1}"/>
  ${tomorrow}
</g:render>

_panelContainer.gsp:

<div class="panel panel-default">
${raw(body())}
</div>

但是,tomorrow 变量未设置。我需要如何实现模板才能正确执行g:set 标签?

【问题讨论】:

    标签: grails gsp


    【解决方案1】:

    首先你需要在调用渲染方法之前设置变量。

    <g:set var="tomorrow" value="${new Date() + 1}"/>
    

    然后你可以使用模型属性在你的模板中传递这个变量。喜欢:

    <g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}"/>
    

    您尝试使用的body() 用于传递要在模板内显示的其他正文内容。喜欢:

    <g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}">
      <a href="..">..</a>
    </g:render>
    

    【讨论】:

      【解决方案2】:

      试试这个:

      <g:set var="tomorrow" value="${new Date() + 1}"/>
      <g:render template="/template/panelContainer" model="${[tomorrow:tomorrow]}"/>
      

      【讨论】:

      • 这行得通,但我花了几个小时试图理解为什么 在模板中不起作用。
      猜你喜欢
      • 2012-08-17
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 2013-11-21
      • 2014-04-03
      • 1970-01-01
      相关资源
      最近更新 更多