GSP中的Paned组件

时间:2008-12-30 07:15:16

标签: jsp web-applications grails layout gsp

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

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

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

答案 2 :(得分:0)

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