2013-03-28 69 views
0

我在這個網站上工作,遇到了一些困難。我使用JSP連接到數據庫,並使用JAVASCRIPT顯示數據。所以我想將整個數組從代碼的JSP部分轉移到java代碼的腳本部分。我試圖傳輸一個字符串 - 甚至我失敗了。將數組從jsp傳遞給java腳本

當然,一個網頁,似乎不是那麼容易做,以及連接到數據庫使用Java腳本。

這裏我想從int [] intArray = {1,2,3,4,5,6,7,8,9,10,11,12}複製值 - 創建一個數組以嘗試不加載從JSP中的數據庫到在JavaScript中的var array[];的值。

或者也許有更簡單的方法將數據庫中的數據複製到highcharts!? 請幫忙!!!

的JSP代碼小部分:

<%! 
String jdbcDriver = "org.postgresql.Driver"; 
String jdbcURL = "jdbc:postgresql:IrishClimateData"; 
String user  = "postgres"; 
String password = "postgres"; 
int[] intArray={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 

%> 

Java腳本:

$(function() { 
var chart; 
var array[]; 
var arr1 = [-2, 8, 5, 11, 17, 22, 24, 24, 20, 14, 8, 2]; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container', 
      type: 'line', 
      marginRight: 130, 
      marginBottom: 25 
     }, 
     title: { 
      text: 'Monthly Average Temperature', 
      x: -20 //center 
     }, 
     subtitle: { 
      text: 'Source: WorldClimate.com', 
      x: -20 
     }, 
     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
       'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 
     yAxis: { 
      title: { 
       text: 'Temperature (°C)' 
      }, 
      plotLines: [{ 
       value: 0, 
       width: 1, 
       color: '#808080' 
      }] 
     }, 
     tooltip: { 
      formatter: function() { 
        return '<b>'+ this.series.name +'</b><br/>'+ 
        this.x +': '+ this.y +'°C'; 
      } 
     }, 
     legend: { 
      layout: 'vertical', 
      align: 'right', 
      verticalAlign: 'top', 
      x: -10, 
      y: 100, 
      borderWidth: 0 
     }, 
     series: [{ 
      name: 'Tokyo', 
      data: arr1 
     }, { 
      name: 'New York', 
      data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] 
     }, { 
      name: 'Berlin', 
      data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0] 
     }, { 
      name: 'London', 
      data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 
     }] 
    }); 
}); 

}); 
</script> 
+3

可以剛剛從打印文本你的jsp。 Javascript也是文本。所以,只需使用適當的javascript語法打印數組。 – 2013-03-28 09:25:34

+0

感謝您的回覆!我不想打印文本,我需要從JSP傳遞值並使用Java腳本顯示它們。這些值必須來自JSP,因爲它們將從數據庫加載 - 我在這裏首先創建了一個數組,以便簡化! – 2013-03-28 09:30:53

+0

您是否嘗試將數據從JSP導出爲JSON? – 2013-04-02 11:14:40

回答

0

Assigne的intArray到變種陣列[]在使用像變種陣列[] =「<%的scriptlet Java腳本= intArray%>「;

+0

感謝您的回覆,但它不適用於數組... – 2013-03-30 06:41:50

0

U可以寫這樣的事情也許:

首先分配數組的元素添加到字符串使用逗號:

String a="1,2,3,4,5"; 

然後將其分配給另一個變量:

var arrayStr=<%=a%>; 

然後這樣做:

var array=arrayStr.split(','); 

希望它的作品

0

首先,從數據庫裝載您的Java數組。爲了爭辯,我只是硬編碼{1, 2, 3}

int[] a = {1, 2, 3}; 

打印到JavaScript變量array

<script type="text/javascript"> 
<% 
    out.println("var array = " + a); 
%> 
</script> 

現在你可以在你的JavaScript中使用array

+0

感謝您的回覆,我可以使用out.println(「var array =」+ a [0]);複製一個元素並打印它,因爲(「var array =」+ a)不起作用。然而,我無法複製一個數組...我試過這個:for(var i = 0; i <12; i ++){out.println(「var array [」+ i +「] =」+ a [i ])和簡單的out.println(「var數組[i] =」+ a [i])沒有工作...有沒有辦法複製整個數組?你知道嗎?謝謝!!! – 2013-03-30 06:40:38

+0

@Andrei Ivanov我現在不能測試,但你可以嘗試'(「var array =」+ Arrays.toString(a))'? – 2013-03-30 16:09:14

0

IS-TE 正確答案abc.jsp

<html> 
function call() 
{ 
var name="xyz"; 
window.location.replace("abc.jsp?name="+name); 
} 
</script> 
<input type="button" value="Get" onclick='call()'> 
<% 
String compose1=request.getParameter("name"); 
out.println(name); 
%> </html> 

它在我的計劃,希望你它會幫​​助你太...