Erstellen eines Diagramms aus einer Backing Bean mit Google Chart Tools

oitathi

Ich versuche, ein Diagramm mit Google-Diagrammtools zu zeichnen. Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Array-Werte von meiner Backing-Bean mit Javascript zu übernehmen. Ich habe den folgenden Code, aber wenn ich ihn teste, sieht es so aus, als würde er die Backing Bean nicht erhalten:

mein xhtml:

<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">

    <ui:composition template="/pages/menu.xhtml">
        <ui:define name="conteudo">
            <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
            <script type="text/javascript">

              // Load the Visualization API and the corechart package.
                google.charts.load('current');   // Don't need to specify chart libraries!

              // Set a callback to run when the Google Visualization API is loaded.
              google.charts.setOnLoadCallback(drawVisualization);

              function drawVisualization() {
                  var wrapper = new google.visualization.ChartWrapper({
                    chartType: 'ColumnChart',
                    dataTable: ["#{chartBean.countries}", "#{chartBean.numbers}"],
                    options: {'title': 'Countries'},
                    containerId: 'vis_div'
                  });
                  wrapper.draw();
                }
            </script>   
            <div id="vis_div" style="width: 600px; height: 400px;"></div>
        </ui:define>
    </ui:composition>
</html>

meine Backbohnen:

@ManagedBean  
@RequestScoped  
public class ChartBeean {

    private String[] countries = {"","Germany","USA","Brazil","Canada","France","Russia"};
    private int[] numbers = {0,700,300,400,500,600,800};


    public String[] getCountries() {
        return countries;
    }
    public void setCountries(String[] countries) {
        this.countries = countries;
    }
    public int[] getNumbers() {
        return numbers;
    }
    public void setNumbers(int[] numbers) {
        this.numbers = numbers;
    }
}

Kann mir jemand dabei helfen? PS: Ich weiß, dass es eine spezielle API gibt, um Google-Charts in Primefaces zu verwenden, aber ich möchte die reine Google-Chart-API verwenden.

Ravi

für Ihre Frage zu "..es sieht so aus, als ob es die Backing Bean nicht bekommt"

Sie verwenden #{chartBean.countries}und Ihr Managed Bean-Name ist ChartBeean.

Sie müssen verwenden #{chartBeean.countries}und"#{chartBeean.numbers}"

Arbeitscode für Diagramme -

  1. Sie brauchen das " " in
    dataTable nicht: [ #{chartBeean.countriesString}, #{chartBeean.numbersString} ])
  2. Ich habe ' im String für Länder hinzugefügt.

XHTML

<h:head>
    <title>Charts Test</title>

    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
        // Load the Visualization API and the corechart package.
        google.charts.load('current'); // Don't need to specify chart libraries!

        // Set a callback to run when the Google Visualization API is loaded.
        google.charts.setOnLoadCallback(drawVisualization);

        function drawVisualization() {
            var wrapper = new google.visualization.ChartWrapper(
                    {
                        chartType : 'ColumnChart',
                        dataTable : [ #{chartBeean.countriesString},
                                #{chartBeean.numbersString} ],
                        options : {
                            'title' : 'Countries'
                        },
                        containerId : 'chart_div'
                    });
            wrapper.draw();
        }
    </script>
</h:head>
<h:body>

    <!--Div that will hold the pie chart-->
    <div id="chart_div"></div>

</h:body>
</html>

ManagedBean

package com;

import java.util.Arrays;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class ChartBeean {

    private String[] countries = { "'Germany'", "'USA'", "'Brazil'", "'Canada'", "'France'", "'Russia'" };
    private String[] numbers = { "700", "300", "400", "500", "600", "800" };

    public ChartBeean() {
        super();
        System.out.println("ChartBeean..");
    }

    @PostConstruct
    public void init() {
        System.out.println("ChartBeean init..");
    }

    public String getCountriesString() {

        // ['Germany', 'USA', 'Brazil', 'Canada', 'France', 'Russia']
        String deepToString = Arrays.deepToString(countries);
        System.out.println(deepToString);
        return deepToString;
    }

    public String getNumbersString() {
        // [700, 300, 400, 500, 600, 800]
        String deepToString = Arrays.deepToString(numbers);
        System.out.println(deepToString);
        return deepToString;
    }

}

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Erstellen eines Diagramms aus einer Datei mit Werten in WPF

Erstellen eines Diagramms mit einer Zeitleiste in Javascript

Erstellen eines Diagramms aus einem Datensatz mit einer dynamischen Anzahl von Spalten und Zeilen

Erstellen eines ERD-Diagramms aus einer Fallstudie

Erstellen eines unipartiten Diagramms aus einem zweiteiligen Netzwerk mit GraphX

Erstellen eines gerichteten Diagramms aus dem Wörterbuch mit Punktzahlen

Einfärben eines Diagramms aus einer Datenliste mit Farben in R

Zeichnen eines Diagramms aus einer Textdatei mit R.

Erstellen eines Diagramms mit Clustern mit jgrapht

Erstellen eines gewichteten Diagramms aus Julia DataFrame

Erstellen eines Diagramms aus langen Daten in Pandas

Erstellen eines ungerichteten Diagramms anhand einer Liste

Erstellen eines Diagramms in Polarkoordinaten mit Größenvektoren

Erstellen eines großen Diagramms mit graphviz

Erstellen eines großen Diagramms mit graphviz

Erstellen eines Diagramms mit Wörterbuchdaten?

Erstellen eines Diagramms mit Bildern als Knoten

Erstellen eines eigenen Diagramms in Python mit Dictionary

Erstellen eines Diagramms mit mehreren Ebenen

Erstellen eines Diagramms mit verschiedenen Farben

Erstellen eines Spider-Diagramms mit JFreeChart

Fehler beim Erstellen eines Diagramms mit mplfinance

Erstellen eines Ankers mit JavaScript, das von der Backing Bean aufgerufen wird

Python: Erstellen eines ungerichteten gewichteten Diagramms aus einer Matrix für das gleichzeitige Auftreten

Erstellen eines Diagramms aus einer zufällig generierten Zahl in R.

Erstellen eines 3D-Diagramms aus mehreren Linien in einer Figur

Cypher-Abfrage - Erstellen eines Diagramms aus einer CSV-Datei

Erstellen eines Excel-Diagramms mit dynamischen Daten, die aus einem Dropdown-Menü stammen

Erstellen eines 3D-Google-Diagramms aus externen JSON-Daten in die HTML-Datei

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv