我正在尝试按照Primefaces展示示例制作一个简单的折线图,但没有成功。 xhtml页面呈现一个空div。我已经改变了bean的范围,仍然没有工作。这是我的代码:
@Named(value = "chartBean")
@RequestScoped
public class ChartBean {
private CartesianChartModel categoryModel;
public ChartBean() {
createCategoryModel();
}
private void createCategoryModel() {
categoryModel = new CartesianChartModel();
ChartSeries boys = new ChartSeries();
boys.setLabel("Boys");
boys.set("2004", 120);
boys.set("2005", 100);
boys.set("2006", 44);
boys.set("2007", 150);
boys.set("2008", 25);
ChartSeries girls = new ChartSeries();
girls.setLabel("Girls");
girls.set("2004", 52);
girls.set("2005", 60);
girls.set("2006", 110);
girls.set("2007", 135);
girls.set("2008", 120);
categoryModel.addSeries(boys);
categoryModel.addSeries(girls);
}
public CartesianChartModel getCategoryModel() {
return categoryModel;
}
public void setCategoryModel(CartesianChartModel categoryModel) {
this.categoryModel = categoryModel;
}
}
我的xhtml文件:
<p:lineChart id="linear" value="#{chartBean.categoryModel}" legendPosition="e"
title="Linear Chart" minY="0" maxY="10" style="height:300px">
</p:lineChart>
我正在使用facelets模型客户端,现在正在测试一个简单的xhtml文件。但我需要使用客户端,图表仍然没有出现在它上面。有什么建议吗?
答案 0 :(得分:3)
我遇到了同样的问题,然后我将p:linechart
与p:panel
包裹起来并且它有效!
像这样:
<p:panel header="Header">
<p:lineChart id="linear" value="#{chartBean.categoryModel}" legendPosition="e"
title="Linear Chart" minY="0" maxY="10" style="height:300px"/>
</p:panel>
答案 1 :(得分:0)
您是否尝试过带有视图范围的chartBean? 试试这个....
@ManagedBean
@ViewScoped
public class ChartBean implements Serializable
{
private static final long serialVersionUID = 1L
...
答案 2 :(得分:0)
我已经解决了这个问题。我在加载页面后使用脚本淡化页面并与Primefaces渲染发生冲突。我删除了display:none属性并解决了问题!