2013-09-23 114 views
-1

我是一個初學javascript的人,我不知道如何在java中編程,並試圖理解servlet真的很難。我所瞭解的是如何創建一個jsp頁面,該頁面向我的Postgres 9.2數據庫提交一個複雜的查詢,並將結果行返回給html,然後將其顯示在客戶端的iframe中。我想要做的是在相同的jsp頁面中獲取相同的結果行,並將它們發送到客戶端的javascript數組中,這樣我就可以在flot中繪製數據。如果我能使這個工作起來,那麼可能會讓我很難理解java和serlets,並且會讓我的繪圖變得更容易,因爲圖形會精確地繪製每次查詢更改時查詢返回的內容。我不想查詢數據庫更多的必要。我以前在這裏讀過,使用jsp除了打印html之外的東西是不推薦的,但是根據這篇文章Populating JavaScript Array from JSP List 我可能能夠將結果行打印到數組中,並且可以在客戶端使用javascript。然而,我不能讓客戶端看到數組變量,並且我確定我有些東西缺失,並且不瞭解某些基本的東西。從jsp服務器端傳遞數字數組到javascript客戶端端

我使用我的查詢結果打印出來的行「C:的forEach」和「c:去」到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 

從我在那個鏈接理解,我應該能夠在我的JSP文件中使用此代碼

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

:做一個數組這個樣子的

<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/javascr IPT文件,我嘗試使用數組來繪製我的數據:

$.plot("#plot", withdraw_v); 

但它返回的withdraw_v變量是不確定的。 我確定我有這個錯誤。任何人都可以指出什麼可能會使這項工作?我試過閱讀關於google-gson的內容,但我並不瞭解它,或者在這種情況下它是否會幫助我。

+0

查看HTML源文件。查看Javascript是否由JSP編寫的錯誤,並且是正確的。您還可以使用Firefox和工具 - >錯誤控制檯到Javascript運行時類型錯誤。 – developerwjk

+0

序言,論證等並不是真的有必要。請問你的問題;如果這是一個「初學者」的問題,那就好了,只需去問問。只添加我們需要的信息,以瞭解您要問的內容以及我們需要做什麼來提供幫助。 –

+0

螢火蟲輸出顯示從NET-> HTML響應爲:<腳本類型= 「文本/ JavaScript的」> 變種withdraw_v = [ \t \t [1.0,1426.50] \t, \t \t \t [2.0,1449.00 ] \t, \t \t \t [3.0,1459。50] \t, \t \t \t [4.0,1470.00] \t, \t \t \t [5.0,1480.50] \t, \t \t \t [6.0,1491.00] \t, \t \t \t [ 7.0,1489.50] \t, \t \t \t [8.0,1512.00] \t, \t \t \t [9.0,1510.50] \t, \t \t \t [10.0,1533.00] \t, \t \t \t [11.0,1543.50] \t, \t \t \t [12.0,1542.00] \t \t ]; – Jan

回答

0

我解決了我的問題,通過實現是否有一個起始html頁面調用一個jsp頁面,並且該jsp頁面查詢數據庫並返回一個結果集,您不能將這些結果以某種形式發回給原始html頁面與該原始html頁面上的javascript交互。

而是我使用html頁面來調用一個jsp頁面,然後將數據庫結果返回到插入到原始頁面上的iframe中的新html頁面。 flot圖表正確地繪製在iframe中。

相關問題