我有一个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
布局要做的就是在<body>
元素的顶部包含一个JS。出于这个问题的目的,这个JS脚本是&#34;魔术&#34;并为我神奇地提取标题导航。
simple.gsp
以使用awesome-header.gsp
? awesome-header.gsp
覆盖任何title
或header
内容(在simple.gsp
内或任何落后者页面中定义)我是如何完成此设置的?
答案 0 :(得分:1)
如果我完全理解,您需要 simple.gsp 和 awesome-header.gsp 之间的层次结构。所以你可以看一下这个link来帮助你做到这一点。
另一种解决方案,可能更容易,因为没有很多修改要做,就是使用模板:
<g:render template='awesome-header'/>