私は JavaScript の初心者であり、Java でのプログラミング方法を知らず、サーブレットを理解しようとするのは非常に困難でした。私が理解しているのは、複雑なクエリを Postgres 9.2 データベースに送信し、結果の行を html に返し、クライアント側の iframe に表示する jsp ページを作成する方法だけです。私がしたいのは、同じjspページで同じ結果行を取得し、それらをクライアント側のjavascriptの配列に送信して、データをflotでグラフ化できるようにすることです。これを機能させることができれば、Java とサーレットを理解しようとする頭痛が解消され、クエリが変更されるたびにクエリが返すものをグラフが正確にプロットするため、プロットが容易になります。必要以上にデータベースにクエリを実行したくありません。私'JSP リストからの JavaScript 配列への入力 結果の行を配列に出力し、それをクライアント側の JavaScript で使用できるようにすることができます。ただし、クライアント側に配列変数を表示させることはできません。何かが欠けていて、基本的なことを理解していないと確信しています。
「c:forEach」と「c:out」を使用してクエリ結果から html に出力した行は、次のようになります。
"Jan" 1 1426.50 472.65
"Feb" 2 1449.00 482.10
"Mar" 3 1459.50 485.55
"Apr" 4 1470.00 489.00
"May" 5 1480.50 492.45
"Jun" 6 1491.00 495.90
"Jul" 7 1489.50 493.35
"Aug" 8 1512.00 502.80
"Sep" 9 1510.50 500.25
"Oct" 10 1533.00 509.70
"Nov" 11 1543.50 513.15
"Dec" 12 1542.00 510.60
そのリンクで私が理解していることから、配列を次のようにすることができるはずです。
var withdraw_v = [[ 1.0, 1426.50],[ 2.0, 1449.00],[ 3.0, 1459.50],[ 4.0, 1470.00],[ 5.0, 1480.50],[ 6.0, 1491.00],[ 7.0, 1489.50],[ 8.0, 1512.00],[ 9.0, 1510.50],[ 10.0, 1533.00],[ 11.0, 1543.50],[ 12.0, 1542.00]];
私のjspファイルでこのコードを使用する:
<sql:query var="rs" dataSource="jdbc/medford">
My sql query goes here
</sql:query>
<script type="text/javascript">
var withdraw_v = [
<c:forEach var="row" items="${rs.rows}" varStatus="status">
[ <c:out value="${row.Month_num}"/>, <c:out value="${row.Average_Withdrawals}"/>]
<c:if test="${not status.last}">,</c:if>
</c:forEach>
];
</script>
私のhtml/javascriptファイルでは、配列を使用してデータをプロットしようとしています:
$.plot("#plot", withdraw_v);
しかし、withdraw_v 変数が未定義であることを返します。私はこれをすべて間違っていると確信しています。誰でもこれが機能する理由を指摘できますか? 私はgoogle-gsonについて読んでみましたが、それを理解していないか、この場合に役立つかどうかもわかりません.