【问题标题】:Using other layouts inside a Grails GSP layout在 Grails GSP 布局中使用其他布局
【发布时间】:2016-03-07 17:46:01
【问题描述】:

我有一个 Grails 2.4.x 应用程序,其中约 80% 的页面使用 simple.gsp 布局,而其他页面都是完全不使用任何布局/模板的落后者。但他们不能使用simple.gsp,因为它的内容不适用于他们。

我需要为所有这些页面 (100%) 添加标题导航,并且想要一个优雅的解决方案。理想情况下,我可以创建一个新布局,例如 awesome-header.gsp,其中包含标题导航。那么:

  • 对于任何使用simple.gsp布局的页面(同样,~20%),我会让他们直接使用awesome-header.gsp;但后来...
  • 我会以某种方式引用/导入/扩展simple.gsp 以(以某种方式)使用awesome-header.gsp;现在允许其他约 80% 的页面使用新的标题导航

让我们假设这是simple.gsp

<!DOCTYPE html>
<html>
    <head>
        <title>
            <g:layoutTitle default="Some App" />
        </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <!-- Lots of stuff -->
        <g:layoutHead />
        <!-- Lots of stuff -->
    </head>
    <body>
        <!-- Lots of stuff -->
        <div id="page-content">
            <g:layoutBody />
        </div>
        <!-- Lots of stuff -->
    </body>
</html>

让我们假设这是awesome-header.gsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
    <head>
        <title></title>
    </head>

    <body>
        <script id="awesome-header-bootstrap" src="/awesome-header/awesome-header-bootstrap-1.0.js"><script>
        <g:layoutBody />
    </body>
</html>

相当准系统。我需要这个awesome-header.gsp 布局做的就是在&lt;body&gt; 元素的顶部包含一个JS。出于这个问题的目的,这个 JS 脚本是“神奇的”,它为我神奇地获取了标题导航。

  • 如何引用/导入/扩展simple.gsp以使用awesome-header.gsp
  • 我不希望 awesome-header.gsp 覆盖任何 titleheader 内容(在 simple.gsp 或任何散乱页面中定义)

有什么想法可以完成这个设置吗?

【问题讨论】:

    标签: grails layout gsp reusability


    【解决方案1】:

    如果我很好理解,您希望 simple.gspawesome-header.gsp 之间有一个层次结构。所以你可以看看这个link 来帮助你做到这一点。

    另一个解决方案可能更简单,因为不需要做很多修改,是使用模板:

    • 将与 awesome-header 相关的所有 HTML / JS 代码放入模板中(比如说 _awesome-header.gsp,'_' 很重要!)
    • 只需将该行放在您的“简单”布局中以及所有其他未连接到“简单”布局的页面中:&lt;g:render template='awesome-header'/&gt;

    【讨论】:

      猜你喜欢
      • 2014-02-18
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 2012-05-18
      • 2011-07-10
      • 2017-12-31
      相关资源
      最近更新 更多