`

grails 中layout的问题

阅读更多
定义页面布局(Layouts)
页面布局可以通过Grails对SiteMesh的支持来创建,有两种方法来创建页面布局,一种是在视图页面中设置名为"layout"的meta标签的值来指定需要使用的页面布局:

<html>
    <head>
  <meta name="layout" content="main"></meta>
    </head>
    <body>This is my content!</body>
</html>

现在在"grails-app/views/layouts"目录下创建名为"main.gsp"的布局就可以了!内容如下:

<html>
       <head>
          <title><g:layoutTitle default="An example decorator" /></title>
               <g:layoutHead />
      </head>
<body onload="${pageProperty(name:'body.onload')}">
                 <div class="menu"><!--my common menu goes here--></menu>
                 <div class="body">
                      <g:layoutBody />
             </div>
</body>
</html>

这个布局使用了 GSP 标签 来将布局应用到目标页面。



GSP对于页面布局也提供了支持,这就是Layout。它是以Sitemesh为基础,同样也是GSP文件,文件位于grails-app/views/layouts。Layout定义涉及3个主要元素:

layoutTitle,输出目标页Title
layoutHead,输出目标页Head
layoutBody,输出目标页Body
使用示例:

<html>
      <head>
          <title><g:layoutTitle default="An example decorator" /></title>
          <g:layoutHead />
      </head>
      <body onload="${pageProperty(name:'body.onload')}">
            <div class="menu">
                 <!--my common menu goes here?
                 <div class="body">
                      <g:layoutBody />
                 </div>
            </div>
      </body>
</html>
其中,pageProperty,可用于输出目标页的某个属性。

对于Layout的使用,4种方式。

法1:在<head>之间使用<meta name="layout" content="main"></meta>。

法2:使用规约。通过存放位置来确定。当有多个匹配时,以详细的优先使用:

应用于Controller:grails-app/views/layouts/controller-name.gsp
Action:grails-app/views/layouts/controller-name/action-name.gsp
法3:使用Controller的layout属性

class BookController {
    //该controller相关的所有view都将使用
    //grails-app/views/layouts/customer.gsp为Layout
    static layout = 'customer'
    def list = {  … }
}
法4,使用<g:applyLayout>,对内容区域、URL、template应用模板:

<g:applyLayout name="myLayout" template="bookTemplate" collection="${books}" />

<g:applyLayout name="myLayout" url="http://www.google.com" />

<g:applyLayout name="myLayout">
        The content to apply a layout to
</g:applyLayout>
在GSP中使用inlcude,有以下的方式:

作为标签:<g:include controller="book" action="list"/>
或者跟applyLayout合用:

    <g:applyLayout name="myLayout">
       <g:include controller="book" action="list"/>
    </g:applyLayout>作为方法调用:def content = include(controller:"book", action:"list")
在Layout中,我们还可以使用内容块,这将让我们可以更灵活地使用layout。它的使用分成2部分:

在Layout中使用<g:pageProperty />预留:

<div id="left1">
    <g:pageProperty name="page.layout1.left.content"/>
</div>
<div id="top2">
    <div id="toolbar"></div>
</div>
<div id="center2">
    <g:pageProperty name="page.layout2.center.content"/>
</div>
<div id="bottom2">
    <g:pageProperty name="page.layout2.bottom.content"/>
</div>
<g:pageProperty name="page.other"/>
在内容页中使用<content>填充:

<content tag="layout1.left.content"> <!-- 注意没有page前缀 -->
    <div id="toc"></div>
</content>
<content tag="layout2.center.content">
    <div id="terminal"></div>
</content>
<content tag="layout2.bottom.content">
    <div id="helpstone"></div>
</content>
<content tag="other">
    <div id="how-to" style="text-align:left;">
        ...
    </div>
</content>
分享到:
评论

相关推荐

    Grails中文参考手册

    Views 是 Grails 应用程序中的用户界面部分,通常使用 Groovy Server Pages (GSP) 文件编写。GSP 结合了 HTML、CSS 和 JavaScript 以及 Groovy 语法,允许动态生成页面内容。 **Services** Services 是可重用的...

    Grails 中文参考手册

    - **部署**:讲解了在各种Java EE容器中部署Grails应用的方法。 2. **配置**: - **基本配置**:讨论了Grails的基础配置选项,包括内置选项和日志设置。 - **数据源**:详细介绍了数据源的配置,包括与环境的...

    grails中文参考手册

    Grails兼容广泛的Java应用服务器,包括但不限于Apache Tomcat、Jetty、Resin等,这使得Grails应用能在不同的环境中无缝运行。 8. **创建工件** Grails提供了多种命令用于生成模型类、控制器、服务等工件,如`...

    grails中文入门简介

    Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式的应用程序。 在入门Grails之前,首先需要了解如何下载并安装这个框架。Grails官方提供了各个版本的下载链接,通常包括zip压缩包和可...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    4. 版本兼容:虽然grails-fckeditor-0.9.5是较旧的版本,但理解其工作原理有助于我们理解如何集成第三方库,以及在更新到新版本时需要注意的问题。 总结,Grails框架及其中文文档为开发者提供了强大的工具和丰富的...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    grails中文API

    本文将深入解析Grails中文API中的关键概念和技术点。 1. **Grails框架概述** Grails是基于Spring框架构建的,它整合了Groovy语言的强大功能和Java生态系统的优势。Grails遵循MVC(Model-View-Controller)设计模式...

    Grails1.1中文文档

    《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...

    grails 中文第二版

    - Grails版本信息可以在项目的`BuildConfig.groovy`文件中找到。 **文档引擎** - 提供了文档生成工具,帮助开发者快速生成API文档。 **依赖解析** - Grails使用Ivy作为其依赖管理系统。 - 支持配置依赖关系,包括...

    Eclipse下搭建Grails项目

    - 在`Windows -&gt; Preferences -&gt; Groovy`中,勾选"Disable Groovy Compiler Generating Class Files",防止groovy文件生成class文件,以免引起不必要的问题。 - 将Grails命令配置为Eclipse的外部工具,方便直接在...

    grails中的上传,下载

    在Grails框架中,文件的上传与下载是常见的功能需求,尤其在开发涉及大量文档、图片或媒体文件处理的应用程序时。以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 ...

    Grails Grails Grails

    1. **模型(Model)**: 在Grails中,模型通常由Domain Classes表示,它们是持久化的实体,与数据库表对应。Domain Classes使用Groovy的元编程特性,如属性验证和动态方法,提供数据验证和业务逻辑。 2. **视图...

    Grails 1.1 中文手册 chm

    Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。

    Grails入门精通及中文API

    7. 阅读Grails中文API文档,解决实际开发中的问题。 在学习过程中,还可以参考在线教程、视频课程和社区论坛,如Stack Overflow和Grails官方社区,以便获取更多实践经验和帮助。 总之,Grails作为Java平台上的快速...

    grails中文文档

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源 Web 应用框架,它构建于 Spring Boot 之上,旨在提高开发效率,简化开发流程。Grails 提供了MVC(Model-View-Controller)架构模式,支持领域驱动设计...

    grails 中文手册

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,充分利用了Java EE的许多功能,同时提供了更简洁、高效的语法,使得开发过程更为快捷。Grails 的设计目标是简化...

    Grails权威指南 Grails权威指南

    在Grails中,Controller处理请求,View呈现结果,Model则存储和管理业务数据。 3. **GORM(Grails Object-Relational Mapping)**:Grails的内置ORM工具,允许开发者以声明式的方式操作数据库,支持SQL的CRUD操作,...

    Grails中集成GWT中文资料

    【Grails中集成GWT】知识点详解 在Web应用开发中,Grails是一个基于Groovy语言的开源框架,而Google Web Toolkit (GWT)则是一个用于构建和优化复杂JavaScript前端应用的开发工具。将这两者结合,可以让开发者利用...

Global site tag (gtag.js) - Google Analytics