高图表和表达式语言问题 - 预期标记“{”的语法错误

High charts and expression language issue - Syntax error on token "{" expected

我正在使用 highCharts 中的以下脚本,我正在尝试使用 jsp 和 EL 使提供给图表的数据动态化。但是,当我尝试使用 EL 替换数字字段时,出现错误 "Syntax error on token "{",. expected"

请找到下面的代码段

<script src="jquery.min.js"></script>
<script>
    $(function() {

        // Create the chart
        $('#resourceutilization')
                .highcharts(
                        {
                            chart : {
                                type : 'column'
                            },
                            credits : {
                                enabled : false
                            },
                            title : {
                                text : 'Resource Utilization'
                            },
                            subtitle : {
                                text : 'Project name : '
                            },
                            xAxis : {
                                type : 'category'
                            },
                            yAxis : {
                                title : {
                                    text : 'Percentage Resource share'
                                }

                            },
                            legend : {
                                enabled : false
                            },
                            plotOptions : {
                                series : {
                                    borderWidth : 0,
                                    dataLabels : {
                                        enabled : true,
                                        format : '{point.y:.1f}%'
                                    }
                                }
                            },

                            tooltip : {
                                headerFormat : '<span style="font-size:11px">{series.name}</span><br>',
                                pointFormat : '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>'
                            },

                            series : [ {
                                name : 'Resources',
                                colorByPoint : true,
                                data : [ {
                                    name : '${drillDownProject.resourceName[0]}',
                                    y : ${drillDownProject.resourceContrib[0]}, // Issue here . This is a number
                                }, {
                                    name : '${drillDownProject.resourceName[1]}',
                                    y : ${drillDownProject.resourceContrib[1]}, // and here. This is a number
                                }, {
                                    name : '',
                                    y : 0,
                                }, {
                                    name : '',
                                    y : 0,
                                }, {
                                    name : '',
                                    y : 0,
                                } ],
                            } ],
                        //Drill down start
                        // Drill Down End
                        });
    });
</script>

您可以尝试放入一个 JS 变量并检查,

<script type="text/javascript">
    var resourceName = '${drillDownProject.resourceName[0]}';
    var contribution = '${drillDownProject.resourceContrib[0]}';

    ....

    {
        name : resourceName,
        y : contribution, 
    },

</script>

确保您使用的是 Servlet 2.4 or above。检查您的 web.xml 的 servlet 版本。 BalusC already answered how-to-pass-an-el-variable-to-javascript. Also check this.