1

レンダリング プラグインを使用して、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 ファイルを返したいと思っています。何か案は?

4

1 に答える 1

0

この機能は、Webフローのコンテキスト内にない場合に機能すると思います。また、Webフローの最終状態では、期待どおりに機能しないものがあることにも気づきました。その理由は正確にはわかりませんが、このような状況に遭遇したときは、通常、別のアクションへのリダイレクトを使用して処理することにしました。したがって、基本的にflow.letterは、パラメータとしてWebフロー外の別のアクションに渡すだけです。そのアプローチにより、Webフローに関連する多くの問題が修正されました。残念ながら、Webフローの最後でリダイレクトを使用するときにスコープ内にとどまるパラメーターに関する微妙な違いを思い出しているように見えるため、現時点ではコードにアクセスできません。問題が発生した場合は、ここに投稿してください。確認します。

于 2010-09-23T18:11:59.943 に答える