Primefaces <p:chart> 未正确显示

Primefaces <p:chart> not being properly shown

我正在尝试根据 this 示例构建日期图表:

.xhtml:

<p:chart id="graficoVendasPorPeriodo" type="line" model="#{relatorioVendaMB.vendasPorPeriodo}"/>

.java:

private void constroiVendasPorPeriodo(Date dataInicio, Date dataFim) {
    List<Object[]> vendasPeriodo = ControleVenda.listarQtdeVendasPorPeriodo(dataInicio, dataFim);
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

    vendasPorPeriodo = new LineChartModel();

    LineChartSeries lcs = new LineChartSeries();
    lcs.setLabel("Vendas Por Período");
    int max = 0;

    for (Object[] obj : vendasPeriodo) {
        int i = ((BigInteger) obj[1]).intValue();
        lcs.set(obj[0], i);

        if (i >= max) {
            max = i;
        }
    }

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(dataFim);
    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
    dataFim = calendar.getTime();

    calendar.setTime(dataInicio);
    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) - 1);
    dataInicio = calendar.getTime();

    vendasPorPeriodo.addSeries(lcs);

    vendasPorPeriodo.setTitle("Vendas por período");
    vendasPorPeriodo.setZoom(true);

    Axis yAxis = vendasPorPeriodo.getAxis(AxisType.Y);
    yAxis.setLabel("Vendas");
    yAxis.setMax(max+10);
    yAxis.setMin(0);

    DateAxis xAxis = new DateAxis("Período");
    xAxis.setTickAngle(-50);
    xAxis.setMin(sdf.format(dataInicio));
    xAxis.setMax(sdf.format(dataFim));
    xAxis.setTickFormat("%#d-%m-%Y");

    System.out.println("Período: " + sdf.format(dataInicio) + ", " + sdf.format(dataFim));

    vendasPorPeriodo.getAxes().put(AxisType.X, xAxis);
}// this method is being called in the '@PostConstruct' method

listarQtdeVendasPorPeriodo(dataInicio, dataFim) 方法 returns 一个 List<Object[]>,其中每个 'Object[]' 数组在第一个位置包含一个字符串,在第二个位置包含一个 int。

问题是,当我执行代码时,绝对没有显示任何内容,甚至没有显示空图表或异常。有人可以指出我的错误并帮助我解决这个问题吗?提前致谢

我认为问题在于 Primefaces 使用您的日期格式的底层 Jqplot 不正确。看到这个答案:jqplot: "this.proxy.getTime is not a function" / date input parser?