2013-11-04 66 views
1

我試圖用Primefaces(在Pom.xml中我有Primefaces 4.0的依賴項)實現條形圖,但是當運行應用程序時不會在屏幕上顯示任何東西,但選擇檢查元素出現<div id="stacked">和一個腳本,但沒有更多。不工作barChart Primefaces

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ES" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.org/ui" lang="es"> 
<f:view contentType="text/html"> 
    <h:head> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> 
     <meta HTTP-EQUIV="refresh" content="1803"/> 
     <title>Sistema de Seguimientos de Ciclos de Calidad</title> 
     <meta name="description" content=""/> 
     <meta name="viewport" content="width=device-width, initial-scale=1"/> 
     <link href="/sistema.ciclos.calidad/resources/css/estilo.css" media="screen" rel="stylesheet" type="text/css" /> 

    </h:head> 
    <h:body link="#000033"> 
      <div id="frame" > 
       <h:form> 
        <p:barChart id="stacked" value="#{grafico.categoryModel}" legendPosition="ne" style="height:300px" 
           title="Stacked Bar Chart" stacked="true" barMargin="50" min="0" max="300"/> 
       </h:form> 
      </div> 

    </h:body> 
</f:view> 
</html> 

被稱爲豆如下:

import org.primefaces.model.chart.CartesianChartModel; 
import org.primefaces.model.chart.ChartSeries; 


import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ViewScoped; 
import java.io.Serializable; 


@ManagedBean(name = "grafico") 
@ViewScoped 
public class Chart implements Serializable { 

    private CartesianChartModel categoryModel; 

    @PostConstruct 
    public void init(){ 
     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; 
    } 

} 
+0

不確定,但是,嘗試將' Daniel

+0

對不起,如果我加了''但仍然沒有工作。 – Isma90

+0

你的primeface版本是? –

回答

0

我已經和我記憶開關從3.5到4

後面臨着同樣的問題,這個問題是相關的JavaScript錯誤在primefaces中使用的jquery版本4 我已經將primefaces 4 jar中的jquery.js文件替換爲primefaces 3.5 jar &中已經解決了問題的那個文件

的primefaces罐內的jquery.js文件的位置是

META-INF \資源\ primefaces \ jQuery的

2

我剛剛碰到同樣的問題。

我發現,不一定是jquery的版本是問題的根源。它似乎<p:barChart>本身不包括所需的jQuery腳本。

在向頁面添加<p:dataTable>之後,即使圖表只是未呈現(<p:dataTable rendered="false" />),圖表也會再次顯示。

當使用和不使用虛設<p:dataTable>比較分別渲染的結果,我注意到,<p:dataTable>強制以下被列入<head>

<link type="text/css" rel="stylesheet" href="/banking/faces/javax.faces.resource/primefaces.css?ln=primefaces&amp;v=4.0" /> 
<script type="text/javascript" src="/banking/faces/javax.faces.resource/jquery/jquery-plugins.js?ln=primefaces&amp;v=4.0"></script> 

因此,我認爲這是一個錯誤的<p:barChart>,這只是錯過了包括。

+0

嘿,你救了我的命!謝謝。 –

+0

這也適用於我。謝謝! – man910