首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Grails 3 rest-api配置文件应用程序中将模板呈现为字符串

在Grails 3 rest-api配置文件应用程序中将模板呈现为字符串
EN

Stack Overflow用户
提问于 2016-10-23 11:44:50
回答 2查看 1.2K关注 0票数 3

我已经创建了一个带有3.2.1配置文件的Grails应用程序,并希望将GSP模板呈现为字符串。为此,我首先在build.gradle中添加了build.gradle,然后基于ResponseRenderer的代码,我尝试将我的GSP模板呈现为:

代码语言:javascript
复制
def viewResolver = applicationContext.getBean(CompositeViewResolver.BEAN_NAME, CompositeViewResolver)

View view = viewResolver.resolveView("/email-templates/signup", null)

但是view对象始终是null。然后,我也尝试了以下几点,但都没有成功:

代码语言:javascript
复制
[ViewResolverComposite, GroovyMarkupViewResolver, GenericGroovyTemplateViewResolver].each {
    def viewResolver = applicationContext.getBean(it)

    View view = viewResolver.resolveViewName("/email-templates/signup", null)
    println view?.dump()
}

我的模板位于grails-app/views/emails-templates/_signup.gsp

在Grails 2中,通过注入类型为groovyPageRendererPageRenderer bean非常简单,但我认为在Grails 3中不再使用该bean和类。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-23 14:16:15

对于使用web配置文件创建的Grails 3应用程序,它们总是可以使用链接从服务中呈现视图?中给出的groovyPageRenderer

对于使用rest-api配置文件创建的应用程序,他们只需在build.gradle中在dependencies块下添加以下内容:

代码语言:javascript
复制
compile "org.grails:grails-plugin-gsp:3.2.1"

上面的链接也将按原样工作。

为了便于描述,注入bean并使用render方法:

代码语言:javascript
复制
PageRenderer groovyPageRenderer

def someMethod() {
    println groovyPageRenderer.render(template: "/email-templates/signup", model: [foo: "bar"])
}
票数 6
EN

Stack Overflow用户

发布于 2018-05-26 04:46:34

对于Grails3.3.x,很少有插件被外部化,伪ids也发生了变化。

请参考这里

因此,要确保注册了groovyPageRenderer bean,请添加

代码语言:javascript
复制
compile "org.grails.plugins:gsp"

dependencies blockbuild.gradle中,而不是

代码语言:javascript
复制
compile "org.grails:grails-plugin-gsp"

只为了确保插件在应用程序中被成功初始化,添加

代码语言:javascript
复制
logger('grails.plugins', TRACE)

logback.groovy文件中。您应该在控制台日志中看到类似的内容。

代码语言:javascript
复制
Grails plug-in [groovyPages] with version [3.3.x] loaded successfully

对于compiling GSP files并将其添加到war/jar包中,请添加

代码语言:javascript
复制
apply plugin:"org.grails.grails-gsp"

到您的build.gradle文件。

我希望这能帮到你。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40202523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档