【问题标题】:Groovy PageRenderer not rendering GSPGroovy PageRenderer 不呈现 GSP
【发布时间】: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


【解决方案1】:

其实有一个类似问题的帖子:https://github.com/grails/grails-views/issues/140

我们正在使用 gsp 模板来创建电子邮件内容,因此可能会有一个丑陋的 hack 让它在 dev 和 prod 环境中都工作:

import java.nio.file.Paths
import org.grails.io.support.ClassPathResource
def notificationsPath = Paths.get(new ClassPathResource("notifications/_welcome.gsp").getURI()).toString()
def f = new File(notificationsPath)
def text = f.getText()


def user = User.findByUsername('email@example.com')
def properties = [url:"https://example.pl"]
def binding =  [user: user, properties: properties]

def engine = new groovy.text.SimpleTemplateEngine()
def template = engine.createTemplate(text).make(binding)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    相关资源
    最近更新 更多