2008-12-30 15 views
2

因此,它看起来像Grails的GSP没有include标签(如果我错了,请纠正我)。最接近“包含”的是使用render tag。还有include pluginGSP中的Paned组件

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

在GSP中完成此操作的首选模式是什么?

回答

0

你说得对,渲染标签可以完成你想要做的事情。尝试使用模板,关键是用初始下划线来命名它们。这blog post应该是有帮助的。

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

1

使用Grails 1.1开始有现在是<g:include> tag它几乎正是你想要做什么。

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