我有一个jsp页面,其中包含两个文本字段Start Date和End Date。用户将输入开始日期和结束日期,然后我将在数据库中查询这些日期之间的数据。当我点击提交时,它会将它转发到当前页面,我会将日期作为参数传递。到目前为止一切都那么好,但问题是图像jfreechart不会刷新,除非我刷新浏览器本身。
这是我的表格。
<form method="GET" action='monitor' name="check">
<table>
<tr>
<td>Start Date (dd/MM/yyyy format):</td>
<td><input type="text" name="startDate"
value="<%=startDate%>"></td>
</tr>
<tr>
<td>End Date (dd/MM/yyyy format):</td>
<td><input type="text" name="endDate" value="<%=endDate%>"></td>
</tr>
<tr>
<td><input type="submit" value="check"></td>
</tr>
</table>
</form>
<img src="lineChart.png" width="600" height="400" border="0" usemap="#chart" />
以下是我生成图表的内联代码
final File file1 = new File(getServletContext().getRealPath(".") + "/lineChart.png");
ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info);
我尝试过writeChartAsPNG,但它会覆盖整个页面。页面应该仍然像,
Start Date:
End Date:
[ VIEW ]
Monitor Data Chart
[ chart here ]
答案 0 :(得分:2)
当你点击View
时,你将不得不改变相当大的东西以使图像在页面内刷新,你最终会写出相当多的javascript
基本上必须发生的事情(这是相当高的水平)
View
成为常规按钮,而不是在表单上提交。?startdate= ... &enddate= ...
image/png
(使用response.setContentType("text/png")
)。这将正确显示img标签中的图像,您也不必将文件写入磁盘。此过程会在您每次点击View
时使用您在表单中输入的值更新图片。
这是很多步骤,如果不了解更多关于你的设置的话,我无法深入了解实施的细节,但希望这会指出你正确的方向