【发布时间】:2011-05-28 23:40:26
【问题描述】:
我对 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 中所有页面格式的控制。
我发现的大多数教程都创建了一个专门的操作来将图像传输到输出流,然后使用标签调用该操作。问题是我的图像没有存储在数据库中,而且我看不到传递图像字节数组(甚至是表单参数)来创建/渲染图像的方法。有人可以帮我吗?谢谢。
【问题讨论】: