【问题标题】:Rendering a PDF in a Grails Web Flow end state在 Grails Web Flow 结束状态下渲染 PDF
【发布时间】:2012-03-01 18:58:01
【问题描述】:

我正在使用渲染插件从 Web 流中生成 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 文件。有什么想法吗?

【问题讨论】:

    标签: pdf grails spring-webflow


    【解决方案1】:

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

    【讨论】:

    • 感谢您的提示。这正是我现在遇到的问题——让我的 Letter 对象脱离流程
    猜你喜欢
    • 1970-01-01
    • 2011-11-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多