有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将数据从struts2发送到javascript函数以绘制图表

我需要在我的网络应用程序中添加一个动态图表。 我选择chartjs作为库(用于折线图) 在创建了包含图表的页面并定义了从数据库检索数据的操作之后,我在将数据从操作发送到生成折线图的脚本时遇到了一些问题

servlet提供一个bean的ArrayList作为输出

@Action(value="/graphDataFetcher")
public String execute(){
    //Connessione a database 
    DBUtility database= new DBUtility(); 
    Connection connessione=database.getConnected();
    listamusei=database.getMusei(connessione);
    //Recupero in liste di musei e mostre correlate
    for(Museo ms: listamusei){
        mostre=new ArrayList<Mostra>();
        mostre=database.getMostraInMuseo(String.valueOf(ms.getId()), connessione);
        ms.setMostre(mostre);
    }
    //Disconnessione da database
    database.getDisconnected();
    return "ok";
}

这是“管理”图表的脚本,我想将bean的属性设置为value1、value2、value3。。等等

<script>
    var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
    var lineChartData = {
    labels : ["January","February","March","April","May","June","July"],
        datasets : [
        {
            label: "My First dataset",
            fillColor : "rgba(220,220,220,0.2)",
            strokeColor : "rgba(220,220,220,1)",
            pointColor : "rgba(220,220,220,1)",
            pointStrokeColor : "#fff",
            pointHighlightFill : "#fff",
            pointHighlightStroke : "rgba(220,220,220,1)",
            data : [value1, value2, value3, value4]
         },
         ]
    }
    window.onload = function(){
    var ctx = document.getElementById("canvas").getContext("2d");
    window.myLine = new Chart(ctx).Line(lineChartData, {
    responsive: true
    });
}
</script>

有人知道如何解决这个问题吗


共 (1) 个答案

  1. # 1 楼答案

    你可以通过两种方式使用 1.使用setter、getter创建一个列表,并在列表中添加数据。在jsp页面中使用strcts标记库和javascript变量put list数据。然后使用如下数据调用chartjs库函数

    <script type="text/javascript">
    var a = new Array();
    <s:iterator var="newsVar" value="newsList" status="newsStatus">
    a[<s:property value="#newsStatus.index"/>]='<s:property value="id"/>';
    </s:iterator>
    $(document).ready(function(){
     chartjsfunction(a);
    });
    </script>
    
    1. 将ajax调用发送到action,并将数据发送到chartjs库函数