gpt4 book ai didi

grails - Grails findBy返回(未保存)对象,导致render()出现空问题

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

我正在尝试将GSP模板呈现为PDF并通过电子邮件发送,但遇到了一个奇怪的问题。我使用Grails findBy*方法获取数据,

def fax(Integer id) {
def transcriptInstance = Transcript.findById(id)
def userInstance = User.findById(transcriptInstance.submitter)

def m = [userInstance: userInstance, transcriptInstance: transcriptInstance]

ByteArrayOutputStream bytes = pdfRenderingService.render(template: "/transcript/_pdf", model: m)

mailService.sendMail {
to <my email> // for testing
from <my email> // for testing
subject "PDF Attachment";
attachBytes "transcript.pdf", "application/pdf", bytes.toByteArray()
body "PDF attachment"
}
}

但是用户实例返回为 User : (unsaved),而我在 Cannot invoke method render() on null object行上收到错误 ByteArrayOutputStream bytes = pdfRenderingService.render(template: "/transcript/_pdf", model: m)。用户肯定保存在数据库中,这是我第一次遇到此问题。知道出了什么问题吗?

编辑:

这段代码现在生成一个pdf,但是我无法通过mailService发送它。
def fax(Integer id) {
def transcriptInstance = Transcript.findById(id)
def userInstance = User.findById(transcriptInstance.submitter)

def m = [userInstance: userInstance, transcriptInstance: transcriptInstance]

ByteArrayOutputStream pdfBytes = pdfRenderingService.render(template: '/transcript/pdf', model: m)
new File('test.pdf').withOutputStream {
it.write pdfBytes.toByteArray()
}

mailService.sendMail {
multipart true
to <my email> // for testing
from <my email> // for testing
subject "PDF Attachment";
attachBytes "transcript.pdf", "application/pdf", <WHAT DO I PUT HERE?>
body "PDF attachment"
}
}

我已经尝试了一些尝试,但是没有任何效果。有任何想法吗?

最佳答案

获得ByteArrayOutputStream后,可以调用toByteArray()以获取mailService所需的字节。

def fax(Integer id) {
def transcriptInstance = Transcript.findById(id)
def userInstance = User.findById(transcriptInstance.submitter)

def m = [userInstance: userInstance, transcriptInstance: transcriptInstance]

ByteArrayOutputStream pdfBytes = pdfRenderingService.render(template: '/transcript/pdf', model: m)

mailService.sendMail {
multipart true
to <my email> // for testing
from <my email> // for testing
subject "PDF Attachment";
attachBytes "transcript.pdf", "application/pdf", pdfBytes.toByteArray()
body "PDF attachment"
}
}

关于grails - Grails findBy返回(未保存)对象,导致render()出现空问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36223160/

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