Я очень новичок в Grails, поэтому, вероятно, очень простой ответ на этот вопрос.Я пытаюсь отобразить динамически созданное изображение в gsp.Изображение НЕ хранится в базе данных, оно создается на лету в контроллере.
По сути, у меня есть один gsp, имеющий форму, которая принимает набор пользовательских данных (requestGraph.gsp).После отправки формы параметры отправляются в действие displayGraph в контроллере, который запрашивает информацию из базы данных полностью за пределами Grails и создает диаграмму с использованием библиотеки JFreeChart.Я хотел бы отобразить это изображение в displayGraph.gsp или что-то в этом роде.
Так что в основном в requestGraph.gsp у меня есть фрагмент, подобный:
<g:form action="displayGraph">
<!-- ... bunch of labels and boxes -->
<g:submitButton name="displayGraph" value="Display Graph" />
</g:form>
Внутри контроллерачто-то вроде:
def requestGraph = {}
def displayGraph = {
//... code that uses params to make an image byte array and assigns to var img
return [image : img]
}
Внутри displayGraph.gsp:
<body>
<h1>Graph Title</h1>
<!-- ??? How to dislpay image? -->
</body>
Я попытался передать изображение напрямую в выходной поток в действии displayGraph.Это работает, но тогда я теряю контроль над всем форматированием страницы в displayGraph.gsp.
В большинстве учебных пособий, которые я нашел, создается специальное действие для передачи изображения на выходной поток, а затем вызывается это действие с помощью тега.Проблема в том, что мое изображение не хранится в базе данных, и я не вижу способа передачи байтового массива изображения (или даже параметров формы) для создания / рендеринга изображения.Кто-нибудь может мне помочь с этим?Спасибо.