You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot整合Thymeleaf、Highcharts实现饼图时数据传递失败如何解决

解决方案

核心问题

你当前的/admin_home接口是视图渲染接口,AJAX请求该接口拿到的是完整HTML页面代码,而非饼图需要的JSON格式数据,所以无法完成图表渲染。

修正步骤

1. 拆分后端接口

将页面渲染和数据返回逻辑拆分,新增专门返回JSON数据的接口:

// 原页面渲染接口保留,仅用于返回HTML页面
@GetMapping("/admin_home")
public String viewHomePage(){
    return "Admin_Homepage";
}

// 新增数据接口,返回饼图需要的JSON数据
@GetMapping("/admin/pieChartData")
@ResponseBody
public List<CountCourse> getPieChartData(){
    return dashBoardRepository.countCourseByCategory();
}

注意:请确保CountCourse类的catName、catCount字段有公开的getter方法,如果使用Lombok可直接加@Data注解,否则Spring无法正常将对象序列化为JSON。

2. 修改前端AJAX请求配置

将AJAX的请求地址改为新增的数据接口,同时指定数据类型为JSON,可添加错误回调方便排查问题:

$.ajax({
    url: "/admin/pieChartData",
    dataType: "json", // 指定返回数据格式为JSON
    success: function(result){
        /* 原有逻辑保持不变 */
        var series = [];
        var data = [];
        for(var i = 0; i < result.length; i++){
            var object = {};
            object.name = result[i].catName.toUpperCase();
            object.y = result[i].catCount;
            data.push(object);
        }
        var seriesObject = {
            name: 'Course By Category',
            colorByPoint: true,
            data: data
        };
        series.push(seriesObject);
        drawPieChart(series);
    },
    // 新增错误回调,方便调试
    error: function(xhr, err){
        console.error("数据请求失败:", err, xhr.responseText);
    }
});

3. 前置依赖检查

确保页面中已按顺序引入必要的JS库:

  • 先引入jQuery库
  • 再引入Highcharts库
    如果未引入对应依赖,图表初始化会直接报错。

额外优化建议

你当前饼图的标题还是默认的Browser market shares in January, 2018,可以改成符合业务的标题,比如课程分类占比统计。


内容的提问来源于stack exchange,提问作者Mohtep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:36:04