charts - 为什么 Primefaces donutChart 不起作用?
问题描述
我尝试使用 primefaces 中的甜甜圈图,因为我使用了 primefaces,但该图表无法正常工作。
所以这是我的 XHTML
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
template="/WEB-INF/templates/new-dashbord-landing-page.xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<ui:define name="postMetadata">
</ui:define>
<ui:define name="content">
<div class="chart-donut">
<p:donutChart model="#{bean.donutModel}"/>
</div>
</ui:define>
</ui:composition>
对于 p:donutChart 在我的情况下我不能使用它,我不知道为什么,这是我的 java
import org.apache.poi.ss.usermodel.charts.ChartData;
import org.primefaces.model.chart.DonutChartModel;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
public class Bean {
private DonutChartModel donutModel;
@PostConstruct
public void init() {
donutModel = new DonutChartModel();
ChartData data = new ChartData();
DonutChartDataSet dataSet = new DonutChartDataSet();
List<Number> values = new ArrayList<>();
values.add(300);
values.add(50);
values.add(100);
dataSet.setData(values);
List<String> bgColors = new ArrayList<>();
bgColors.add("rgb(255, 99, 132)");
bgColors.add("rgb(54, 162, 235)");
bgColors.add("rgb(255, 205, 86)");
dataSet.setBackgroundColor(bgColors);
data.addChartDataSet(dataSet);
List<String> labels = new ArrayList<>();
labels.add("Red");
labels.add("Blue");
labels.add("Yellow");
data.setLabels(labels);
donutModel.setData(data);
}
public DonutChartModel getDonutModel() {
return donutModel;
}
}
我使用与 primefaces 文档中相同的代码。我只想使用图表:(
解决方案
问题是 DonutChartModel 的导入。您正在选择用于 p:chart 组件的旧版本。对于基于 Charts.js 的组件,正确的包名称是:
org.primefaces.model.charts.donut.DonutChartModel
稍微偏离主题,bean 也需要注释。例如@Named
和@RequestScoped
。
推荐阅读
- c# - C# 块中变量的名称会影响内存吗?
- r - 对数据框中的单个变量使用 as.numeric
- jquery - 无法在 ruby 5 应用程序中向数据表添加选项
- jquery - 使单个 jQuery 函数更简洁
- python - 如何将烧瓶pymongo中光标对象的第一个值分配给变量
- plsql - 在 PL/SQL 中显示表中所有记录的存储过程
- sql - 如何使用表单输入作为查询参数
- spring-data-rest - Spring、hal浏览器与实体关系
- java - Spring Boot @ManyToMany 未在 JSON 中显示
- r - R randomForest 太多类别错误即使少于 53 个类别