2013-03-28 49 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> 

它在我的计划,希望你它会帮​​助你太...