gpt4 book ai didi

grails - Grails 如何知道将 "layout"应用于它呈现的页面?

转载 作者:行者123 更新时间:2023-12-03 08:46:11 24 4
gpt4 key购买 nike

我一直在阅读“The Definitive Guide to Grails”(Rocher/Brown)一书,在第 4 章中,这个被称为“布局”的神秘事物刚刚出现,没有任何解释。 (并且索引中没有“布局”。据我所知,从未解释过。)

系统如何知道从 layout/main.gsp 中“继承”页面?索引中没有关于“布局”的内容,它似乎刚刚出现。

在他们的示例应用程序(一个简单的商店网站)上,/主页的 URL 映射说

  "/"(controller:"store")

并存储 Controller 的空“索引”闭包
package com.g2one.gtunes

class StoreController {

def index = {
}
}

简单地告诉它渲染 store/index.gsp

store/index.gsp 只有几行 HTML;任何指令都不包含布局
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="layout" content="main">
<title>gTunes Store</title>
<g:javascript library="prototype"></g:javascript>
</head>
<body id="body">
<h1>Your online music store and storage service!</h1>
<p>Manage your own library, browse music and purchase new tracks as they become available</p>
</body>
</html>

当我运行示例时,为“/”显示的页面不仅仅是这个简单的 HTML,它是“layouts/main.gsp”的内容,其中神奇地插入了这些信息。

我看不到 layout/main.gsp 中的信息是如何应用到页面的,元素是如何混合在一起的。我一直在逐页阅读这本书,而这个功能只是“出现”而没有任何解释。

最佳答案

<meta name="layout" content="main">标签包含 gsp 页面中的布局。

您可以查看grails-app/views/layouts/main.gsp查看和修改布局。您可以复制main.gspmymain.gsp ,修改它,然后将gsp页面中的布局条目更改为引用mymain.gsp而不是 main.gsp并尝试自定义您的布局,以保留您轻松撤销更改的能力。

Grails 在后台使用sitemesh(就像它使用hibernate 和spring 一样)来进行 View 布局。有一个web-app/WEB-INF/sitemesh.xml项目目录中的配置文件也是如此。这个特定的文件没有那么有用,但是如果您想深入了解 grails 是如何使用 sitemesh 的,它会引用 groovy 项目中的一个类(这可能不是必需的)。

关于grails - Grails 如何知道将 "layout"应用于它呈现的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com