5

ユーザーが選択したいくつかのチェックボックスの結果として、JFreeChartを使用して動的にグラフを生成しようとしていますが、生成されたデータセットをグラフ形式にする最善の方法がわかりません(これらからグラフを作成するコードがありますが、 pngを生成します)そしてJSPビューに。現在、データセットをJSPに送信することしか考えられませんが、そこから何をすべきかを考えることはできません...ユーザーがサーブレットにフォームを送信し、サーブレットがデータセットを生成し、チャートがデータセットから生成されるようにするにはどうすればよいですか。 、チャートからのpng、そして最後にjspにディスパッチされたpng?またはそれらの線に沿った何か。

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
                    throws IOException, ServletException{

    String[] metrics     = request.getParameterValues("metrics");
    String[] fileNames   = request.getParameterValues("files");

    List<CategoryDataset> results = new ArrayList<CategoryDataset>();
    DMCalc calculator = new DMCalc(metrics, fileNames);  
    calculator.calculateResults();
    results.add(calculator.getEditDistanceDataset());
    results.add(calculator.getSimilarityDataset());
    results.add(calculator.getTimeChartDataset());

    request.setAttribute("results", results);
    RequestDispatcher view = request.getRequestDispatcher("metricResult.jsp");

    view.forward(request, response);
}

アップデート:

doPostメソッドにユーザー投稿からデータセットを生成させることで、それらをフィールドに保存できます。その後、RequestDispatcherはユーザーをJSPに転送し、JSPは以前に保存されたデータセットを使用するimgタグでサーブレットのdoGetメソッドを呼び出します。 pngを生成するフィールド。これは、JSPのHTMLによって表示されます。

4

2 に答える 2

4

JSPファイルに、src属性がサーブレットの名前であるタグを含めます。次に、サーブレットにPNGチャートを返すようにします。

    OutputStream out = response.getOutputStream();
    response.setContentType("image/png");
    ChartUtilities.writeChartAsPNG(out, chart, width, height);

JSPページは、実際にはHTMLまたはその他のテキストデータを出力することのみを目的としています。JSPにPNGを出力させることもできますが、その方法で出力するメリットはありません。

ドロップダウンメニューの状態の変化に基づいて更新される動的なページを作成したいようです。このためには、メニューが変更されたときにトリガーされ、imgタグのsrc属性の値を更新するJavascriptを使用する必要があります。次に、ブラウザはサーブレットから新しいチャートを使用して画像をリロードします。

于 2009-08-10T16:15:59.297 に答える