Primefaces 3.5不渲染折线图

时间:2013-11-29 22:42:59

标签: jsf-2 primefaces java-ee-6

我正在尝试按照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文件。但我需要使用客户端,图表仍然没有出现在它上面。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,然后我将p:linechartp: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属性并解决了问题!