Графики PrimeFaces не отображаются при добавлении на другую страницу - PullRequest
0 голосов
/ 20 октября 2018

Совершенно новый для JSF, но я понимаю жизненный цикл.Я использую JSF 2.2, Primefaces 6.1.Я создал макет отдельно в xhtml-странице с именем bDashboard.xhtml.Работает нормально при вызове напрямую.Но когда я включаю его в другую страницу через <ui:include src="/bDashboard.xhtml" />, графики не отображаются.Вот файл панели инструментов:

<ui:composition  
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a="http://xmlns.jcp.org/jsf" 
xmlns:p="http://primefaces.org/ui"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:ct="http://www.chartistjsf.org/charts"
xmlns:ui="http://java.sun.com/jsf/facelets">


<h3>My Dashboard</h3>
<p:panelGrid columns="2" layout="grid">
    <p:panel>
        <p:chart type="pie" model="#{pieChartBean.pieModel1}"
            style="display:block;margin-right:auto;margin-left:auto;" />
    </p:panel>
    <p:panel>
        <p:chart type="pie" model="#{pieChartBean.pieModel2}" visible="true"
            style="display:block;margin-right:auto;margin-left:auto;" />
    </p:panel>
  </p:panelGrid>
</ui:composition>

Этот файл выше включен таким образом:

<h:form id="buyerDashForm">
            <ui:include src="/bDashboard.xhtml" />
</h:form>

Управляемый компонент Piechart:

@ManagedBean
@SessionScoped
public class PieChartBean {
    private PieChartModel pieModel1;
    private PieChartModel pieModel2;

@PostConstruct
public void init() {
    createPieModels();
}

public PieChartModel getPieModel1() {
    return pieModel1;
}

public PieChartModel getPieModel2() {
    return pieModel2;
}

private void createPieModels() {
    createPieModel1();
    createPieModel2();
}

private void createPieModel1() {
    pieModel1 = new PieChartModel();

    pieModel1.set("Kajaria Builders", 540);
    pieModel1.set("Bajaj Constructions", 325);
    pieModel1.set("Sentinel Builders", 702);
    pieModel1.set("Regency Towers", 421);

    pieModel1.setTitle("Savings By Project");
    pieModel1.setLegendPosition("w");
    pieModel1.setShadow(false);
}

private void createPieModel2() {
    pieModel2 = new PieChartModel();

    pieModel2.set("Kajaria Builders", 50);
    pieModel2.set("Bajaj Constructions", 35);
    pieModel2.set("Sentinel Builders", 72);
    pieModel2.set("Regency Towers", 41);


    pieModel2.setTitle("Savings By Spend Category");
    pieModel2.setLegendPosition("e");
    pieModel2.setShowDataLabels(true);
    pieModel2.setShadow(false);
}

Я не получаю ошибок, когдастраница отображается.

1 Ответ

0 голосов
/ 22 октября 2018

Я полагаю, что компонент диаграммы работает и в Primeface 6.1.Я выполнил приведенный выше фрагмент кода, который вы опубликовали, включая шаблон .xhtml, здесь он работал нормально.

-> Я удалил visible = true из файла .xhtml.
-> Также проверьте расположение файла шаблона.указано в пользовательском интерфейсе: include

Мой pom.xml выглядит следующим образом

    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>6.1</version>
    </dependency>

    <!-- JSF -->
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.6</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.6</version>
    </dependency>

Ниже выводится enter image description here

...