Я очень новичок в 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.
Большинство учебных пособий, которые я нашел, создают выделенное действие, чтобы передать изображение в выходной поток, а затем вызвать это действие с помощью тега. Проблема в том, что мое изображение не хранится в базе данных, и я не вижу способа передать массив байтов изображения (или даже параметры формы) для создания/рендеринга изображения. Может ли кто-нибудь помочь мне в этом? Спасибо.