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.使用setter、getter创建一个列表,并在列表中添加数据。在jsp页面中使用strcts标记库和javascript变量put list数据。然后使用如下数据调用chartjs库函数