java - 在javascript函数中使用jsp

标签 java javascript jsp

我已经搜索过这个但找不到任何东西。 如果英文不正确,请更正我的问题。

这是我的代码: 编辑:代码在我的 .jsp 文件中!

    function drawChart() {
    var data = google.visualization.arrayToDataTable([
        ['Beoordeling', 'Stage Opleider', 'Student'],

        ['1', '1', '4'],

        <% ArrayList < Stelling > alleStellingenLijst2 = new ArrayList < Stelling > ();
        alleStellingenLijst2 = (ArrayList < Stelling > ) request.getAttribute("stellingen");
        for (Stelling s: alleStellingenLijst2) {
            out.println("['1', '" + s.getDeStelling() + "' , '" + s.getDeWaarde() + "'],");
        } %> ]);
    var options = {
        title: 'Laatste competenties',
        hAxis: {
            title: 'Score',
            titleTextStyle: {
                color: 'green'
            }
        },
        vAxis: {
            title: 'Beoordeling nummer',
            titleTextStyle: {
                color: 'green'
            }
        },
        // Allow multiple simultaneous selections.
        selectionMode: 'multiple',
        colors: ['#BEF781', 'green']
    };
    var chart = new      google.visualization.BarChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}

出于某种原因,它不会执行 <% %> 之间的代码(来自 jsp)。

本页在线:http://project-omega.appspot.com/grafieken.jsp 谷歌应用引擎日志说错误在我页面的最后一行。这是一个空指针异常。

我不知道这是什么意思,我真的希望有人能帮助我。

非常感谢,对不起我的英语。

编辑 呈现的输出如下所示

  function drawChart() {
    var data = google.visualization.arrayToDataTable([                                               
      ['Beoordeling', 'Stage Opleider', 'Student'],
      for (Stelling s : alleStellingenLijst2) {
        out.println("['1', '" + s.getDeStelling() + "' , '" + s.getDeWaarde() + "'],");       
    }  
  ]);

新代码:

 function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Beoordeling', 'Stage Opleider', 'Student'],

          ['1', 1, 4],

          <%

            ArrayList<Stelling> alleStellingenLijst2 =(ArrayList<Stelling>) getServletContext().getAttribute("stellingen");
            for (Stelling s : alleStellingenLijst2) {
                out.println("['1', " + s.getDeStelling() + " , " + s.getDeWaarde() + "],");       
            }   
        %> 
        ['2', 2, 2]
        ]);

最佳答案

这些是 JSP 标记,您不能在 JavaScript 中使用它们!

这是因为JSP文件在编译时被编译成.java类,而JavaScript是在客户端执行的。

您可以做相反的事情 - 在 JSP 文件中生成一段 JavaScript 代码,这样您就可以将一些您想要的数据传递给 JS 变量。

关于java - 在javascript函数中使用jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707809/

相关文章:

Java网络编程

java - java 中 import 和 class.forName 的区别

java - 这种语法格式对 Java 来说正常吗?

java - 如何自动化我的网络驱动程序以从 Excel 工作表中获取数据并使用启动它?

javascript - 如何重新加载 JSONObject 内容

javascript - Google map - 标记列表取决于缩放级别

java - 在 JBoss 7.5.0 上使用 REST 服务时,XML 文件处理不正确

java - 为什么Java中没有全局变量?

javascript - 如何使用 javascript 以网格格式(行和列)动态添加按钮?

java - 使用JSP作为模板解析引擎-安全问题