gpt4 book ai didi

grails - Grails 应用程序中的 CMS

转载 作者:行者123 更新时间:2023-12-02 15:36:15 25 4
gpt4 key购买 nike

我正在尝试在 grails 应用程序中构建一个非常简单的 CMS 功能。
基本上我在这里尝试的是在一个字符串中有一个 gsp,我想从这个字符串构建 gsp。

它可以工作,但生成的页面没有用主布局装饰。
此外,在其他一些尝试中,我注意到传递给 make 方法的模型被忽略了。

我正在使用 grails 2.0.1。

谢谢

class HomeController {

def groovyPagesTemplateEngine

def cms() {
def page = """<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main"/>
<title>CMS page using your application's main layout</title>
</head>
<body>
CMS page using your application's "main" layout.
</body>
</html>"""

StringWriter sw = new StringWriter()
PrintWriter pw = new PrintWriter(sw)

groovyPagesTemplateEngine.createTemplate(page, "somepage.gsp").make([nome: "ciao"]).writeTo(pw)
render sw
}

最佳答案

这不起作用,因为您本质上只是用字符串调用 render 。

调用 sitemesh 过滤器时会应用布局。为了让它工作,您必须将 sitemesh 装饰器应用于您的字符串。

当我们构建类似的功能时,我们所做的只是发送相关的页面片段:

IE,

我的模板.gsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="${layout}"/>
${head}
</head>
<body>
${body}
</body>
</html>

然后你可以打电话:
render( template: 'MyTemplate', model:[ layout: 'layout', head: '...', body: '...' ] )

这与您尝试执行的操作具有相同的效果,但添加了站点网格(以及可能正确集成的插件)。

关于grails - Grails 应用程序中的 CMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966046/

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