我需要在网格布局中的 grails 页面上显示四个图表,位置分别为 11、12、21 和 22。每个图表的构建代码类似于:
<img src="${createLink(controller:'paretoChart', action:'buildParetoChart11')}"/>
图表构建操作的代码是:
def buildParetoChart11 = {
def PlotService p11 = PlotService.getInstance()
def poList = paretoChartService.getParetoidPO()
def listCounter = 0
def idPO = poList[listCounter]
idPO.toString()
def String idPOvalue = idPO
def out = response.outputStream
out = p11.paretoPlot(out, idPOvalue)
response.setContentType("image/jpg")
session["idPOList11"] = poList
}
Java p11.paretoPlot(out, idPOvalue) 在 OutputStream 中返回图表的 BufferedImage,但它仅适用于一个图表。其他三个图表在调用所有浇注动作的顺序上有所不同。
PlotService 是我写的,是的。在这个实现中,我将从 response.outputStream 得到的 OutputStream 和 String idPOvalue 传递给 Java 方法。plotPareto的实现如下:
public OutputStream paretoPlot(OutputStream out, String po) throws IOException {
chart = buildParetoChart(po);// here the chart is actually built
bufferedImage = chart.createBufferedImage(350, 275);
ChartUtilities.writeBufferedImageAsJPEG(out, bufferedImage);
}
那么,有没有办法确保在启动下一个动作之前完成一个动作?
提前致谢!