2013-01-16 38 views
0

我有一個jsp頁面,其中包含兩個文本字段開始日期和結束日期。用戶將輸入開始日期和結束日期,然後我將在數據庫中查詢這些日期之間的數據。當我點擊提交時,它只會將其轉發到當前頁面,我會將日期作爲參數傳遞。到目前爲止這麼好,但問題是圖像jfreechart不刷新,除非我刷新瀏覽器本身。JFreeChart圖像不刷新在JSP

這是我的表格。

<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 ] 

回答

2

你必須改變周圍的相當顯着的東西來獲取圖像與頁面內刷新當你點擊View,你最終會編寫JavaScript

公平的位

基本上就是有發生(這是相當高的水平)

  1. 使View一個普通按鈕,而不是表單上的提交。
  2. 附加一個點擊監聽器視圖按鈕(檢查出jQuery documentation爲它的點擊功能)
  3. 在監聽器裏,從開始日期和結束日期輸入
  4. 設置圖像的src屬性搶值(使用機制like in this SO answer)發送到一個jsp或servlet,發送開始日期和結束日期作爲獲取變量(在查詢字符串中,如?startdate= ... &enddate= ...
  5. 在該jsp或servlet中,生成圖表並從jFreeChart返回帶有內容的原始PNG輸出類型爲image/png(使用response.setContentType("text/png"))。這將正確顯示img標籤中的圖像,並且不必編寫文件出到磁盤上。

此過程將在您每次點擊View時用您輸入到表單中的值更新圖像。

這是一個很大的步驟,我真的不能進入實施的細節問題不知道一大堆更多關於您的設置,但希望這將只是你指出正確的方向

+1

感謝我傳遞圖表參數中的開始日期和結束日期。喜歡這個。 http://stackoverflow.com/questions/13092729/adding-graph-chart-to-a-buffer/13093044#13093044 – jantox