Grails布局 - 一种嵌套布局问题,条件内容

时间:2011-02-28 20:08:35

标签: grails layout sitemesh

我有以下(简化)布局:

<header>
  ... more stuff here
  <nav id="nav">
    <div class="content_wrapper">
      <ul id="menu">
        <li>dashboard</li>
      </ul>
    </div>
  </nav>
</header>
<div id="main_content">
  <div class="content_wrapper">
    <g:layoutBody/>
  </div>
</div>

我的问题是“菜单”导航依赖于layoutBody中呈现的内容。文本“仪表板”不仅会更改为“登录”,“支持”等,而且在某些页面上还有按钮,链接等。在Grails中有什么办法可以在不改变页面布局的情况下动态渲染这个基于layoutBody的NAV元素?我已经阅读了包含内容块部分的文档,但是它们没有解决问题,因为它们仍然在主布局中预先确定。

1 个答案:

答案 0 :(得分:1)

我在grails webapp上遇到同样的问题。这是我解决它的方式。 在你的布局中:

<nav id="nav">
    <div class="content_wrapper">
      <ul id="menu">
        //Here you can insert whatever you have in all your pages
        //Then below you can insert custom content depending on main body
        <li><g:pageProperty name="page.nav-content"/></li>
      </ul>
    </div>
</nav>

然后在需要其他模块(如登录模块)的主视图(如home.gsp)中,您可以包含以下内容:

<content tag="nav-content">
   <g:include controller="nav" action="login"/>
</content>