在Grails Web Flow结束状态下呈现PDF

时间:2010-09-22 22:29:58

标签: pdf grails spring-webflow

我正在使用Rendering插件从Web Flow中生成PDF。问题是我不能让我的结束状态返回PDF响应。如果我打电话:

renderPdf(template: "/letter/generate/createpdf", model: [letter: flow.letter], filename: 'doc.pdf')

从我的结束状态操作中,它仍然尝试返回结束状态视图。但是,我可以这样说:

createpdf {
    action {
        renderPdf(template: "/letter/generate/createpdf", model: [letter: flow.letter], filename: 'doc.pdf')
        return
    }
    on("success").to "finish"
}

但当然我得到了:

java.lang.IllegalStateException: getOutputStream() has already been called for this response

我基本上希望我的结束状态返回PDF文件。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果不在Web流的上下文中,我假设此功能有效。我也注意到有些东西不像我期望的那样在网络流的最终状态。我不清楚为什么会这样,但是当我遇到这样的情况时,我通常会通过重定向到另一个动作来处理它。所以基本上只是将你的flow.letter作为一个参数传递给webflow之外的另一个动作;这种方法为我解决了许多与webflow相关的问题。不幸的是,我目前无法访问我的代码,因为我似乎回想起在webflow结束时使用重定向时参数范围内的一些细微差别。如果你遇到问题,请在这里发布,我会看看。