gpt4 book ai didi

java - JFreeChart 图像在 JSP 中不刷新

转载 作者:行者123 更新时间:2023-12-02 07:20:18 26 4
gpt4 key购买 nike

我有一个 jsp 页面,其中包含两个文本字段“开始日期”和“结束日期”。用户将输入开始日期和结束日期,然后我将查询数据库以获取这些日期之间的数据。当我单击“提交”时,它只会将其转发到当前页面,并且我会将日期作为参数传递。到目前为止一切顺利,但问题是图像 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 ]

最佳答案

当您点击View时,您必须对周围的事情进行相当大的改变才能使图像在页面内刷新,并且您最终将编写相当多的JavaScript

本质上是必须发生的事情(这是相当高的水平)

  1. 使View成为常规按钮,而不是表单上的提交按钮。
  2. 将点击监听器附加到 View 按钮(查看 jQuery documentation 了解其点击功能)
  3. 在监听器内,从“开始日期”和“结束日期”输入中获取值
  4. 将图像的 src 属性(使用机制 like in this SO answer )设置为 jsp 或 servlet,将开始日期和结束日期作为 get 变量发送(在查询字符串中,如 ?startdate= ... &enddate= ...
  5. 在该 jsp 或 servlet 中,生成图表并从 jFreeChart 返回内容类型为 image/png 的原始 png 输出(使用 response.setContentType("text/png") )。这将正确显示 img 标记中的图像,并且您也不必将文件写入磁盘。

每次您点击View时,此过程都会使用您在表单中输入的值更新图像。

这需要很多步骤,如果不了解更多有关您的设置的信息,我无法真正深入了解实现的细节,但希望这能为您指明正确的方向

关于java - JFreeChart 图像在 JSP 中不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com