Jsf Primefaces&;jqplot-在轴上显示日期

Jsf Primefaces&;jqplot-在轴上显示日期,jsf,primefaces,jqplot,Jsf,Primefaces,Jqplot,我试图在PrimeFaces 3.4中的折线图上使用extender AttAttribute。 我需要使用extender将x轴格式化为日期/时间值。如果使用默认的PF线形图属性,则不使用extender进行此操作是不可取的,因为有太多的数据点,并且标签会简单地覆盖。 当我按照如下所示设置代码时,我得到一个没有显示值的x轴;我只能看到x轴。详见图片。如何进行设置,使x轴以hh:mm格式显示时间 XHTML代码 <script type="text/javascript" src="#{

我试图在PrimeFaces 3.4中的折线图上使用extender AttAttribute。 我需要使用extender将x轴格式化为日期/时间值。如果使用默认的PF线形图属性,则不使用extender进行此操作是不可取的,因为有太多的数据点,并且标签会简单地覆盖。 当我按照如下所示设置代码时,我得到一个没有显示值的x轴;我只能看到x轴。详见图片。如何进行设置,使x轴以hh:mm格式显示时间

XHTML代码

<script type="text/javascript" src="#{request.contextPath}/js/plugins/jqplot.dateAxisRenderer.min.js"></script>
<script type="text/javascript" src="#{request.contextPath}/js/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
<script type="text/javascript">
 function loginRateChartExt() {
  this.cfg.axes = { 
   yaxis: {
    numberTicks: 10,
    label: 'Logins per minute ->',
    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
    labelOptions: { fontFamily: 'Verdana', fontSize: '8pt' },
   },
   xaxis: { 
    renderer: $.jqplot.DateAxisRenderer,
    rendererOptions: { tickRenderer:$.jqplot.CanvasAxisTickRenderer },
    tickOptions: { formatString:'%H:%M' },
    label: 'Time of day ->',
    labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
    labelOptions: { fontFamily: 'Verdana', fontSize: '8pt' }
   }
  }; 
 }
</script>
<p:lineChart id="loginRateChart" value="#{loginRateBean.chartModel}" extender="loginRateChartExt" />

函数loginRateChartText(){
this.cfg.axes={
亚克斯:{
号码:10,,
标签:“每分钟登录次数->”,
labelRenderer:$.jqplot.CanvasAxisLabelRenderer,
标签选项:{fontFamily:'Verdana',fontSize:'8pt'},
},
xaxis:{
渲染器:$.jqplot.DateAxisRenderer,
渲染器选项:{tickRenderer:$.jqplot.CanvasAxisTickRenderer},
选项:{formatString:'%H:%M'},
标签:“一天中的时间->”,
labelRenderer:$.jqplot.CanvasAxisLabelRenderer,
标签选项:{fontFamily:'Verdana',fontSize:'8pt'}
}
}; 
}
Bean代码

for(int i = 0; i < workerBean.getSize(); i++) { // worker bean has the data
  for (String key : workerBean.getValueKeys()) { // each key refers to a series
    // chartSeriesMap is a map that contains all the series
    // workerBean.getKeyAt(i) returns Date
    // workerBean.getValueAt(i, key) returns a Number
    chartSeriesMap.get(key).set(workerBean.getKeyAt(i), workerBean.getValueAt(i, key).floatValue());
  }
}
for (String string : workerBean.getValueKeys()) {
 chartModel.addSeries(chartSeriesMap.get(string));
}
for(inti=0;i
将min属性添加到扩展器似乎可以解决显示器的问题。我在stackoverflow的另一个问题上看到了这一点(链接如下)。有人知道这是不是一个解决办法吗


要实现它,必须使用.getTime()将日期值设置为LONG

serie.set(registro.getDataAfericao().getTime(), registro.getValor());
有关更多信息: