Визуализация PDF в конечном состоянии Grails Web Flow - PullRequest
1 голос
/ 23 сентября 2010

Я использую плагин Rendering для создания 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 голосов
/ 23 сентября 2010

Я предполагаю, что эта функция работает, если она не находится в контексте веб-потока.Я также заметил, что некоторые вещи работают не совсем так, как я ожидаю в конечном состоянии веб-потока.Я не совсем понимаю, почему это так, но когда я сталкивался с подобными ситуациями, я обычно прибегал к его обработке с перенаправлением на другое действие.По сути, просто передайте свой flow.letter в качестве параметра другому действию вне веб-потока;этот подход позволил мне решить ряд проблем, связанных с веб-потоками.К сожалению, в данный момент у меня нет доступа к моему коду, потому что я, кажется, вспоминаю некоторые нюансы в отношении параметров, остающихся в области видимости при использовании перенаправления в конце веб-потока.Если у вас возникнут проблемы, опубликуйте их здесь, и я посмотрю.

...