Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails Groovy页面渲染器不渲染GSP_Grails_Groovy_Service_View - Fatal编程技术网

Grails Groovy页面渲染器不渲染GSP

Grails Groovy页面渲染器不渲染GSP,grails,groovy,service,view,Grails,Groovy,Service,View,我有一个版本为2.2.4的Grails应用程序。我正在尝试将gsp呈现为字符串参数,并将其发送到Mandrill模板以作为邮件发送。代码如下 import grails.gsp.PageRenderer SampleService{ PageRenderer groovyPageRenderer def mailService def sampleSendMail(List<String> names){ def view = groovy

我有一个版本为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)
    }
}
<%@ page contentType="text/html" %>
<table>
   <th>Name</th>
      <g:each in="${names}" var="name" >
          <tr>${name}</tr>
      </g:each>
</table>
导入grails.gsp.PageRenderer
样品服务{
页面渲染器GroovyPagerEnder
def邮件服务
def sampleSendMail(列表名称){
def view=groovyPageRenderer.render(视图:'/mail/_sampleMail',模型:[名称:名称])
mailService.sendMandrillTemplate(视图)
}
}
普惠制如下

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)
    }
}
<%@ page contentType="text/html" %>
<table>
   <th>Name</th>
      <g:each in="${names}" var="name" >
          <tr>${name}</tr>
      </g:each>
</table>

名称
${name}
当我在本地进行测试时,它按预期工作。但当我在开发环境中测试时,“view”参数总是空的

有没有具体的原因?这个问题让我很困惑,因为我想不出这个问题的逻辑原因,因为它在我的本地机器上工作。而且,在开发环境中执行时,它不会抛出任何错误消息,它只是返回一个空字符串

对此的任何见解都会有所帮助

编辑-------


我正在使用Mandril插件(org.grails.plugins:mandrill:0.5)。我在“sendMandrillTemplate”方法中使用了mandrillSendTemplate方法。这不是问题。问题是当我在变量中呈现gsp时,它在我的开发环境中是空的。

事实上,有一个关于类似问题的线程:

我们正在使用gsp模板来创建电子邮件内容,因此可能存在一种丑陋的黑客行为,使其在开发人员和产品环境中都能工作:

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)

如果从视图路径中删除u,会发生什么情况?这也是一个插件吗?文档对sendMandrillTemplate方法说了什么?视图是否被设置为html?如果我在本地删除“u”,我将无法获得gsp。然后我还将“groovyPageRenderer.render”中的“view”改为“template”。然后它在本地工作,但在开发环境中仍然不工作。我使用日志检查了“view”参数的大小,该参数在呈现gsp后为空,gsp是issue@Visahan你解决这个问题了吗?