#charts #primefaces #chart.js
#Диаграммы #primefaces #chart.js
Вопрос:
Я пытался использовать диаграмму пончиков из 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. Я просто хочу использовать диаграмму: (
Ответ №1:
Проблема заключается в импорте для DonutChartModel. Вы используете более старую версию, используемую для компонентов p: chart. Для Charts.js компоненты на основе правильное имя пакета: org.primefaces.model.charts.donut.DonutChartModel
Немного не по теме, компонент также нуждается в аннотировании. например @Named
, и @RequestScoped
.