Ein JSF-Steuerelement mit einfacher Auswahl an eine Variable binden

Ein JSF-Steuerelement mit einfacher Auswahl, wie zum Beispiel ein Kombinationsfeld oder eine Gruppe von Optionsfeldern an eine EGL-Variable zu binden, ist komplizierter, als ein Eingabe- oder Ausgabesteuerelement zu binden, da Sie zwei EGL-Variablen verwenden müssen: eine für die Optionen im Steuerelement und eine für den ausgewählten Wert.

Im Allgemeinen müssen Sie eine Feldgruppe erstellen, die die Optionen im Steuerelement darstellt, sowie eine einzelne Variable für den Wert der ausgewählten Option. Am einfachsten ist dies möglich, indem eine Feldgruppe mit einer Zeichenfolge definiert und mit den Optionen für das Steuerelement befüllt wird. Lesen Sie dazu den Abschnitt 'Eine Zeichenfolgenfeldgruppe für Auswahloptionen verwenden'. Alternativ können Sie auch eine Feldgruppe mit Datensätzen für die Optionen für das Steuerelement verwenden, indem Sie Felder im Datensatz als im Steuerelement anzuzeigende Option und als Wert für die Auswahl angeben. Lesen Sie dazu den Abschnitt 'Eine Datensatzfeldgruppe für Auswahloptionen verwenden'.

Eine Zeichenfolgenfeldgruppe für Auswahloptionen verwenden

  1. Erstellen Sie in einem JSF-Handler eine Zeichenfolgenfeldgruppe für die Optionen für das Steuerelement mit einfacher Auswahl:
    selectionOptions string[4];
  2. Weisen Sie der Feldgruppe Werte zu. Sie können Werte dynamisch zuweisen oder der Feldgruppe einfach Literalwerte zuweisen:
    selectionOptions string[4]
       {"First choice", "Second choice",
        "Third choice", "Fourth choice"};
  3. Erstellen Sie eine Zeichenfolgevariable für die ausgewählte Option:
    selectedChoice string;
  4. Geben Sie an, dass die einzelne Variable die aus der Liste von Optionen ausgewählte Option durch Hinzufügen der Eigenschaft 'SelectedValueItem' zur Liste von Optionen empfangen soll:
    selectionOptions string[4]
       {"First choice", "Second choice",
        "Third choice", "Fourth choice",
        SelectedValueItem = selectedChoice};
  5. Speichern Sie und generieren Sie den JSF-Handler.
  6. Ziehen Sie auf der dem JSF-Handler zugeordneten Seite die Variable, die die Liste der Optionen darstellt (in diesem Fall 'selectionOptions') von der Sicht 'Seitendaten' auf die Seite. Das Fenster 'Listenfeld einfügen' wird geöffnet.
  7. Im Fenster 'Listenfeld einfügen' klicken Sie auf Anzeigen eines bestehenden Datensatzes.
  8. Wählen Sie unter 'Steuerungstyp' den Typ des JSF-Steuerelements mit einfacher Auswahl aus, der auf der Seite eingefügt werden soll.

    Sie können aus 'Kombiniertes Feld' (auch Listenfeld oder Dropdown-Liste genannt), 'Listenfeld - einfache Auswahl' und 'Gruppe von Radioknöpfen' wählen. Die Optionen werden in jedem Fall abhängig von der Anzahl der Elemente in der Liste von Optionen zur Laufzeit dynamisch hinzugefügt.

  9. Klicken Sie auf 'Fertig stellen'. Das Steuerelement wird Ihrer Seite hinzugefügt und wird automatisch an die Variablen im JSF-Handler gebunden.

Sie können prüfen, an welche Variablen das JSF-Steuerelement gebunden ist, indem Sie das Steuerelement durch Anklicken auswählen und dann die Eigenschaftsansicht öffnen. In der Eigenschaftsansicht wird mit dem Feld 'Wert' die Variable dargestellt, die den Wert der ausgewählten Option empfängt, und in der Tabelle von Variablen auf der rechten Seite der Ansicht sind die Variablen aufgelistet, die zum Bereitstellen der Optionen für das Steuerelement verwendet werden.

Im Folgenden finden Sie ein vollständiges Beispiel eines JSF-Handlers, für den auf diese Weise ein Steuerelement mit einfacher Auswahl verwendet wird:
handler singleSelect type JSFHandler
    {view = "singleSelect.jsp"} 

    selectionOptions  string[4]
       {"First choice","Second choice",
        "Third choice","Fourth choice", 
        SelectedValueItem = selectedChoice};
        
    selectedChoice    string;

    outputMessage     string;
    
    function getChoice()
        outputMessage = "You chose: " 
            + selectedChoice;
    end
end
Für dieses Beispiel wird vorausgesetzt, dass Sie die Variable 'selectionOptions' auf die Seite gezogen und ein Kombinationsfeld, ein Listenfeld oder eine Optionsfeldgruppe basierend auf dieser Variable erstellt haben. Sie müssen die Variable 'outputMessage' außerdem an ein Ausgabesteuerelement und die Funktion 'getChoice' an eine Schaltfläche auf der Seite binden. Wenn Sie auf die Schaltfläche klicken, wird der Text der im JSF-Steuerelement mit einfacher Auswahl ausgewählten Option im Ausgabesteuerelement angezeigt.

Eine Datensatzfeldgruppe für Auswahloptionen verwenden

Eine Zeichenfolgenfeldgruppe für die Auswahloptionen zu verwenden, ist ein einfaches, aber nicht besonders komfortables Verfahren. Sie müssen die Optionen möglicherweise von Datensatzfeldgruppen abrufen oder einen Wert für die Option verwenden und einen anderen Wert an die Variable für das Auswahlergebnis übergeben. Verwenden Sie in diesem Fall die Datensatzeigenschaft '@SelectionList', um anzugeben, welche Felder im Datensatz für die Option verwendet werden sollen und welche für den Wert der Auswahl verwendet werden sollen.

Gehen Sie wie folgt vor, um eine Datensatzfeldgruppe für die Auswahloptionen zu verwenden:

  1. Verwenden Sie in einem Satzabschnitt '@SelectionList', um anzugeben, welches Feld im Datensatz die Auswahloption enthalten ('labelItem') und welches Feld den Wert der Option ('valueItem') enthalten soll:
    record optionsRec type BasicRecord
       {@SelectionList {labelItem = displayOption, 
                        valueItem = optionValue}}
        displayOption  string;
        optionValue    string;
    end
    Der Datensatz kann andere Felder enthalten, aber Sie müssen zwei dieser Felder als Beschreibung und Wert auswählen.
  2. Erstellen Sie im JSF-Handler eine Feldgruppe basierend auf diesem Satzabschnitt:
    selectionOptions optionsRec[3];
  3. Weisen Sie der Feldgruppe Werte zu. Sie können Werte dynamisch zuweisen oder der Feldgruppe einfach Literalwerte zuweisen. Möglicherweise möchten Sie zum Festlegen von Werten für diese Feldgruppe 'onPreRenderFunction' verwenden:
    function onPreRender()
        selectionOptions[1].displayOption = "Option one";
        selectionOptions[1].optionValue = "first option";
        selectionOptions[2].displayOption = "Option two";
        selectionOptions[2].optionValue = "second option";
        selectionOptions[3].displayOption = "Option three";
        selectionOptions[3].optionValue = "third option";
    end
  4. Erstellen Sie eine einzelne Variable zum Abrufen der ausgewählten Option:
    selectedChoice string;
    Der Typ dieser Variable muss mit dem Typ des als 'valueItem' gekennzeichneten Feldes im Satzabschnitt übereinstimmen.
  5. Geben Sie an, dass die einzelne Variable die aus der Liste von Optionen ausgewählte Option durch Hinzufügen der Eigenschaft 'SelectedValueItem' zur Liste von Optionen empfangen soll:
    selectionOptions optionsRec[3]
       {selectedValueItem = selectedChoice};
  6. Speichern Sie und generieren Sie den JSF-Handler.
  7. Ziehen Sie auf der dem JSF-Handler zugeordneten Seite die Variable, die die Liste der Auswahloptionen darstellt (in diesem Fall 'selectionOptions') von der Sicht 'Seitendaten' auf die Seite. Das Fenster 'Listenfeld einfügen' wird geöffnet.
  8. Im Fenster 'Listenfeld einfügen' klicken Sie auf Anzeigen eines bestehenden Datensatzes.
  9. Wählen Sie unter 'Steuerungstyp' den Typ des JSF-Steuerelements mit einfacher Auswahl aus, der auf der Seite eingefügt werden soll.

    Sie können aus 'Kombiniertes Feld' (auch Listenfeld oder Dropdown-Liste genannt), 'Listenfeld - einfache Auswahl' und 'Gruppe von Radioknöpfen' wählen. Die Optionen werden in jedem Fall abhängig von der Anzahl der Elemente in der Liste von Auswahloptionen zur Laufzeit dynamisch hinzugefügt.

  10. Klicken Sie auf 'Fertig stellen'. Das Steuerelement wird Ihrer Seite hinzugefügt und wird automatisch an die Variablen im JSF-Handler gebunden.

Sie können prüfen, an welche Variablen das JSF-Steuerelement gebunden ist, indem Sie das Steuerelement durch Anklicken auswählen und dann die Eigenschaftsansicht öffnen. In der Eigenschaftsansicht wird mit dem Feld 'Wert' die Variable dargestellt, die den Wert der ausgewählten Option empfängt, und in der Tabelle von Variablen auf der rechten Seite der Ansicht sind die Variablen aufgelistet, die zum Bereitstellen der Optionen für das Steuerelement verwendet werden.

Im Folgenden finden Sie ein vollständiges Beispiel eines JSF-Handlers, für den auf diese Weise ein Steuerelement mit einfacher Auswahl verwendet wird:
handler singleSelect type JSFHandler
   {view = "singleSelect.jsp", 
    onPreRenderFunction = onPreRender} 

    selectionOptions optionsRec[3]
       {selectedValueItem = selectedChoice};
        
    selectedChoice    string;

    outputMessage     string;
    
    function onPreRender()
        selectionOptions[1].displayOption = "Option one";
        selectionOptions[1].optionValue = "first option";
        selectionOptions[2].displayOption = "Option two";
        selectionOptions[2].optionValue = "second option";
        selectionOptions[3].displayOption = "Option three";
        selectionOptions[3].optionValue = "third option";
    end
    
    function getChoice()
        outputMessage = "You chose: " 
            + selectedChoice;
    end
end

record optionsRec type BasicRecord
   {@SelectionList {labelItem = displayOption, 
                    valueItem = optionValue}}
    displayOption  string;
    optionValue    string;
end
Für dieses Beispiel wird vorausgesetzt, dass Sie die Variable 'selectionOptions' auf die Seite gezogen und ein Kombinationsfeld, ein Listenfeld oder eine Optionsfeldgruppe basierend auf dieser Variable erstellt haben. Sie müssen die Variable 'outputMessage' außerdem an ein Ausgabesteuerelement und die Funktion 'getChoice' an eine Schaltfläche auf der Seite binden. Wenn Sie auf die Schaltfläche klicken, wird der Text der im JSF-Steuerelement mit einfacher Auswahl ausgewählten Option im Ausgabesteuerelement angezeigt.

Feedback