< Vorherige Lektion | Nächste Lektion >

Lerneinheit 1.5: Die Schaltfläche 'Übergeben' programmieren

Wenn Ihr Eingabeformular übergeben wird, fügt die Seite den neuen Datensatz automatisch zur Datenbank hinzu. In dieser Lerneinheit programmieren Sie die Übergabeschaltfläche Neuen Eintrag übergeben so, dass Sie zur Seite all_records.jsp zurückgeleitet werden und den neuen Datensatz in der Datenbank unverzüglich anzeigen können.

Gehen Sie folgendermaßen vor, um die Schaltfläche 'Übergeben' zu programmieren:

  1. Klicken Sie in der Datei 'new_record.jsp' mit der rechten Maustaste auf die Schaltfläche Neuen Eintrag übergeben, die Sie im Formular auf der Webseite erstellt haben, und wählen Sie Eigenschaften aus.
  2. Klicken Sie auf Regel hinzufügen. Das Fenster Navigationsregel hinzufügen wird geöffnet.
  3. Wählen Sie in der Dropdown-Liste 'Seite' all_records.jsp aus, und klicken Sie anschließend auf OK.
  4. Speichern Sie die Seite. Wenn Sie versuchen möchten, einen Datensatz zur Datenbank hinzuzufügen, um zu überprüfen, ob Sie auf die Seite 'all_records.jsp' zurückgeleitet werden, führen Sie 'new_record.jsp' auf Ihrem Testserver aus.
Doppelte Schlüssel vermeiden
Wichtig:

Da es sich bei der ID-Spalte in der ADS-Tabelle um einen Primärschlüssel handelt, können keine Datensätze mit einem ID-Wert hinzugefügt werden, der in der Tabelle bereits vorhanden ist. In Modul 2 werden Sie lernen, wie die automatische Schlüsselerstellung verwendet wird, um für jeden neuen Datensatz automatisch einen neuen Schlüssel zu erstellen, der bisher noch nicht verwendet wird.

Bis dahin müssen Sie auf dieser Seite eine bisher noch nicht verwendete ID-Nummer eingeben, um einen neuen Datensatz hinzuzufügen. Für die mit der Datenbank gelieferten Datensätze werden ID-Nummern von 1 bis 24 verwendet. Sie können also als Primärschlüssel eine beliebige Zahl eingeben, die größer als 24 ist. Wenn Sie mehr als einen Datensatz eingeben, müssen Sie unbedingt darauf achten, keine doppelten Schlüssel zu verwenden.

Eingabe an den relationalen Datensatz binden (optional)

Das Eingabeformular auf der Seite besteht aus einer Gruppe von JavaServer Faces-Eingabefeldern, die an den von Ihnen erstellten relationalen Datensatz gebunden wurden. Zur Erinnerung: Sie haben den relationalen Datensatz erstellt, um in der ADS-Tabelle Ihrer Datenbank einen neuen Datensatz darzustellen. Das Binden ist eine Methode, mit der eine JavaServer Faces-Eingabekomponente mit einer Spalte im relationalen Datensatz verknüpft werden kann.

Als Sie den relationalen Datensatz erstellt haben, hat der Assistent sämtliche Spalten automatisch an die Eingabefelder auf der Seite gebunden. Wenn Sie manuelle Änderungen vornehmen wollen, können Sie weitere Spalten an weitere Eingabefelder binden. Um eine Spalte aus Ihrem relationalen Datensatz an ein Eingabefeld zu binden, ziehen Sie die betreffende Spalte aus der Sicht 'Seitendaten' auf das entsprechende Feld. Sie können dieses Verfahren ausprobieren und üben, indem Sie das Eingabefeld 'Beschreibung' in Ihrem Formular löschen und erneut erstellen.

Die Seitendatenansicht befindet sich normalerweise in der unteren linken Ecke der Workbench. Sollten Sie sie nicht finden können, gehen Sie zur Menüleiste, und klicken Sie auf Fenster > Sicht anzeigen > Seitendaten. Die Seitendatenansicht wird normalerweise nur zur Erstellung dynamischer Webseiten verwendet.

Die Seitendatenansicht speichert Verbindungen zu Datenquellen (z.B. Datenbanken) als Datenobjekte, wie z.B. relationale Datensätze oder relationale Satzlisten. Diese Datenobjekt stellen weder die Datenquelle selbst noch irgendeine Komponente auf der Seite dar. Sie stehen vielmehr für eine Verbindung zwischen dem Projekt und der Datenquelle. Sobald eine solche Verbindung erstellt wurde, können Sie ein Datenobjekt von der Seitendatenansicht auf eine Webseite ziehen, um die Verbindung herzustellen und Informationen aus der Datenquelle auf der Webseite anzuzeigen. Hier ist beispielsweise eine Abbildung der Sicht 'Seitendaten' mit einer relationalen Satzliste, die im Rahmen dieses Lerntextes erstellt wurde:

Sicht 'Seitendaten'.

In dieser Abbildung sehen Sie die relationale Satzliste all_recordlist (ADS), gefolgt von allen Spalten in dieser relationalen Satzliste. Sobald dieses Datenobjekt in der Seitendatenansicht definiert wurde, können Sie diese Spalten so oft auf die Eingabekomponenten einer Webseite ziehen, wie Sie möchten, ohne dass Sie die Verbindung zur Datenbank erneut herstellen müssten.

Wenn Sie beispielsweise den Wert der Spalte "BESCHREIBUNG" auf einer Webseite anzeigen wollten, würden Sie zunächst ein Textausgabefeld auf die Seite ziehen und dann die Spalte "BESCHREIBUNG" aus der Seitendatenansicht auf dieses Textausgabefeld ziehen. Man sagt in diesem Fall, dass die Spalte an das Ausgabefeld gebunden wird.

Wenn Sie alternativ möchten, dass der Benutzer einen neuen Wert für die Spalte "BESCHREIBUNG" in der Datenbank eingibt, würden Sie ein Texteingabefeld auf die Seite ziehen. Danach würden Sie dann die Spalte "BESCHREIBUNG" auf das Texteingabefeld ziehen.

Anhand der nachstehenden Schritte soll das Konzept der Eingabefelder und das Verfahren zum Binden demonstriert werden. Die Durchführung dieser Schritte ist in diesem Lerntext optional. Wenn Sie diesen Teil nicht üben wollen, fahren Sie mit der nächsten Lerneinheit fort.

  1. Klicken Sie in der Datei 'new_record.jsp' auf das Eingabefeld Beschreibung. Drücken Sie die Taste für Löschen.
  2. Klicken Sie in der Sicht 'Palette' auf das Ablagefach Erweiterte Faces-Komponenten, um es zu erweitern.
  3. Ziehen Sie die Komponente Eingabe aus der Palette auf die Zelle, die das soeben gelöschte Eingabefeld Beschreibung enthielt. In dieser Zelle befindet sich nun ein Eingabefeld. Dieses Feld enthält jedoch keinen Text wie beispielsweise {ID} oder {TITEL}, da es an keine Spalte gebunden ist.
  4. Klicken Sie in der Sicht 'Seitendaten', um Relationale Datensätze > create_record (Service Data Object) > create_record (ADS) zu erweitern, und ziehen Sie die Spalte 'BESCHREIBUNG' in die soeben erstellte Komponente Eingabe. Der Text in der Komponente Eingabe zeigt nun an, dass dieses Feld an die Spalte BESCHREIBUNG gebunden ist, wie in der folgenden Abbildung dargestellt ist:
    Sicht 'Seitendaten'.
  5. Speichern Sie die Datei, und führen Sie die Seite anschließend auf dem Testserver aus, wenn Sie möchten.

Prüfpunkt für die Lerneinheit

Sie haben Lerneinheit 1.5 abgeschlossen. In dieser Lerneinheit haben Sie gelernt, wie Sie eine Befehlsschaltfläche programmieren und Daten an ein Eingabefeld binden, indem Sie ein JSF-Widget von der Palette ziehen und auf einer Webseite übergeben.

< Vorherige Lektion | Nächste Lektion >