【发布时间】:2017-08-29 05:34:52
【问题描述】:
我有一个版本为 2.2.4 的 Grails 应用程序。我正在尝试将 gsp 呈现为字符串参数并将其发送到 Mandrill 模板以作为邮件发送。代码如下
import grails.gsp.PageRenderer
SampleService{
PageRenderer groovyPageRenderer
def mailService
def sampleSendMail(List<String> names){
def view = groovyPageRenderer.render(view: '/mail/_sampleMail', model: [names: names])
mailService.sendMandrillTemplate(view)
}
}
GSP 如下所示
<%@ page contentType="text/html" %>
<table>
<th>Name</th>
<g:each in="${names}" var="name" >
<tr>${name}</tr>
</g:each>
</table>
当我在本地测试它时,它按预期工作。但是当我在开发环境中测试这个时,“view”参数总是空的。
这有什么具体原因吗?这个问题让我感到困惑,因为我想不出这个问题的合理原因,因为它在我的本地机器上工作。此外,这在开发环境中执行时不会抛出任何错误消息,它只是返回一个空字符串。
对此的任何见解都会有所帮助
编辑-------
我正在使用 Mandril 插件 (org.grails.plugins:mandrill:0.5)。我在“sendMandrillTemplate”方法中使用了 Mandrill sendTemplate 方法。这不是问题。问题是当我在一个变量中渲染一个 gsp 时,它在我的开发环境中是空的。
【问题讨论】:
-
如果从视图路径中删除 _ 会发生什么?这也是插件吗?文档对 sendMandrillTemplate 方法说了什么?视图是否设置为 html?
-
如果我在本地删除“_”,我不会得到 gsp。然后我还在“groovyPageRenderer.render”中将“视图”更改为“模板”。然后在本地它工作,但仍然在开发环境中这不起作用。使用日志我检查了“view”参数的大小,渲染gsp后为空,这是问题
-
@Visahan 你解决了这个问题吗?
标签: grails groovy service view