我有一个圆环图,其代码是用JSP
编写的。
现在,我想为它添加一个图例。但legendTemplate
中还包含jsp
。
如何添加?
var myDoughnutChart = new Chart(ctx).Doughnut(data, {legendTemplate: "<ul class=\"<%=name.toLowerCase()%>-legend\" style=\"list-style:none;font-family:HP Simplified;\"><% for (var i=0; i<segments.length; i++){%><li><div style=\"font-size: 12px;\"><div style=\"width:10px;float :left; height:10px;background: <%=segments[i].fillColor%>\"></div><div style=\"padding: 0px 15px;\"><%if(segments[i].label){%><%=segments[i].label%><%}%></div></div></li><%}%></ul>"} );
我收到以下错误:
An error occurred at line: 58 in the jsp file: /WEB-INF/pages/abc/xyz.jsp
name cannot be resolved
55:
56:
57: var ctx = document.getElementById("assetStatus").getContext("2d");
58: var myDoughnutChart = new Chart(ctx).Doughnut(data, {legendTemplate: "
与legendTemplate
对应的值必须是String。如何逃避jsp
内容?
答案 0 :(得分:0)
您可以先在服务器端脚本块中构建legendTemplate
String serverSideLegendTemplate = "<ul class=\"";
serverSideLegendTemplate += name.toLowerCase();
serverSideLegendTemplate += "-legend\" style=\"list-style:none;font-family:HP Simplified;\">";
for (var i=0; i<segments.length; i++) {
...
然后只需打印legendTemplate
即可myDoughnutChart = new Chart(ctx).Doughnut(data, {
legendTemplate: "<%=serverSideLegendTemplate%>"
});
这样可以更清楚,更容易地找出无法解析变量的原因(您可以在单独的范围内定义它)。