2

所以看起来 Grails 的 GSP 没有包含标签(如果我错了,请纠正我)。最接近“包含”的是使用渲染标签。还有包含插件

就我而言,我有一个经典的左上中右下窗格页面。顶部标题或左侧将包括导航。中间是内容。右侧可能包括广告。在我的应用程序的 JSP 版本中,除了中间的每个窗格都将位于它们自己的 JSP 中。然后,我会将<jsp:include/>各种面板包含(使用)到我的页面中。这是普惠制中的正确方法吗?

在 GSP 中实现这一目标的首选模式是什么?

4

3 回答 3

3

您可能希望使用 grails 提供的布局功能(使用 SiteMesh),而不是按视图导入或渲染窗格。如果您想对所有页面应用相同的布局(即菜单/内容/广告),您只需修改grails-app/views/layouts/main.gsp以拥有您需要的页面元素,然后该<g:layoutBody/>标签将由您的控制器呈现的常规视图填充。main.gsp布局是默认提供的,是所有(脚手架和生成的)视图的默认布局。

如果您需要一些页面有广告而另一些页面没有广告,您需要在grails-app/views/layouts(例如main-ads.gsp) 中创建一个新布局。然后,在您希望有广告的视图中,在 中<head></head>,您将使用 设置布局<meta name="layout" content="main-ads.gsp"/>

http://docs.codehaus.org/display/GRAILS/Views+and+Layouts

于 2008-12-30T16:59:29.210 回答
1

从 Grails 1.1 开始,现在有一个<g:include> tag几乎完全可以满足您的需求。

研究上述选项重新布局/模板仍然是有意义的,因为它们在大多数情况下会更有效。

于 2009-06-20T19:01:23.387 回答
0

你是正确的,渲染标签可以完成你想做的事情。尝试使用模板,关键是使用初始下划线命名它们。这篇博文应该会有所帮助。

于 2008-12-30T13:59:42.787 回答