< Vorherige Lektion | Nächste Lektion >

Lerneinheit 1.6: Aktualisierungsseite erstellen

Bisher haben Sie Seiten zum Anzeigen und Erstellen von Einträgen für die Website erstellt. In dieser Übung erstellen Sie eine Seite, über die Benutzer Einträge aktualisieren und löschen können. Die Aktualisierungsseite ist fast mit der Erstellungsseite identisch. Die einzige Ausnahme ist, dass die Eingabefelder auf der Aktualisierungsseite Daten aus einem bereits vorhandenen Datensatz enthalten, die der Benutzer ändern kann.

Zunächst erstellen Sie einen relationalen Datensatz, der einen bereits vorhandenen Datensatz aus der Datenbank darstellt. Als Nächstes erstellen Sie ein JavaServer Faces-Aktualisierungsformular für diesen relationalen Datensatz, und nach einigen kleinen Änderungen ist Ihre Seite bereit zum Testen.

Den relationalen Datensatz für die Aktualisierung erstellen

  1. Öffnen Sie die Datei update_record.jsp, indem Sie in der Sicht 'Enterprise-Explorer' doppelt auf diese Datei klicken.
  2. Löschen Sie den Standardtext Inhalt hier einfügen.
  3. Klicken Sie in der Sicht 'Palette' auf das Ablagefach Daten und Services, um es zu erweitern.
  4. Ziehen Sie die Komponente SDO - Relationaler Datensatz von der Palette in den leeren Inhaltsbereich. Das Fenster Relationalen Datensatz hinzufügen wird geöffnet.
  5. Geben Sie im Feld 'Name' update_record ein.
  6. Klicken Sie unter Steuerelemente erstellen für auf Aktualisierung eines bestehenden Datensatzes.
  7. Stellen Sie sicher, dass die Option Eingabe-/Ausgabesteuerelemente zur Anzeige des relationalen Datensatzes auf einer Webseite hinzufügen ausgewählt ist.
  8. Klicken Sie auf Weiter.
  9. Erweitern Sie im Tabellenfenster 'W5SAMPLE', und wählen Sie 'ADS' aus.
  10. Klicken Sie auf Weiter. Die Seite 'Relationalen Datensatz hinzufügen' wird geöffnet.

Die Ergebnisse filtern

Ein relationaler Datensatz kann lediglich einen einzelnen Satz aus der Datenbank anzeigen. Daher müssen Sie die Datenbanktabelle so filtern, dass nur ein vom Benutzer zu bearbeitender Datensatz angezeigt wird. (In der vorherigen Übung mussten Sie die Datenbank nicht filtern, da Sie einen neuen Datensatz erstellt haben, sodass keine zu filternden Ergebnisse aus der Datenbank vorlagen.) Da jeder Datensatz in der Datenbank über eine eindeutige ID-Nummer verfügt, werden die Ergebnisse für den Satz mit einer bestimmten ID-Nummer gefiltert.
  1. Die Seite 'Relationalen Datensatz hinzufügen' verfügt über eine Liste mit Verknüpfungen zu Tasks. Klicken Sie unter Tasks auf Ergebnisse filtern. Das Fenster 'Filter' wird geöffnet und fügt die standardmäßige Filterbedingung ID = #{param.ID} der Spalte Filter hinzu. Das Fenster 'Filter' sieht folgendermaßen aus:
    Fenster 'Filter'.
    Dieser Code filtert die Datensätze in der Datenbank so, dass lediglich der Datensatz mit der angegebenen ID-Nummer im relationalen Datensatz angezeigt wird. Im Abschnitt 'Eine Zeilenaktion hinzufügen' weiter unten in dieser Übung erfahren Sie mehr über diese Filterbedingung. Klicken Sie auf Schließen.
  2. Klicken Sie auf Weiter. Die Seite 'Datensteuerungen konfigurieren' wird geöffnet.
  3. Nehmen Sie im Abschnitt Angezeigte Felder die Auswahl des Markierungsfelds neben allen Feldnamen zurück, die nicht angezeigt werden sollen, sodass nur die Markierungsfelder neben den Feldnamen ausgewählt bleiben, die in Ihrem Eingabeformular erscheinen sollen:
    • ID
    • HAUPTKATEGORIE
    • TITEL
    • BESCHREIBUNG
    • PREIS
    • TELEFONNUMMER
  4. Ändern Sie die Reihenfolge der Feldnamen wie folgt von oben nach unten, indem Sie entsprechend auf die Pfeile für Aufwärts bzw. Abwärts klicken:
    • ID
    • TITEL
    • BESCHREIBUNG
    • HAUPTKATEGORIE
    • PREIS
    • TELEFONNUMMER
  5. Wählen Sie für das ID-Feld Anzeigenummer aus der Dropdown-Liste in der Spalte Steuerungstyp aus. Obwohl es sinnvoll ist, Benutzern die Möglichkeit zu geben, die ID-Nummer eines Datensatzes anzuzeigen, sollten sie nicht in der Lage sein, den entsprechenden Satz zu aktualisieren. Durch Definition des ID-Felds als Ausgabefeld kann das Problem doppelter IDs umgangen werden.
  6. Klicken Sie auf Optionen. Das Fenster 'Optionen' wird geöffnet. Stellen Sie sicher, dass die Option Schaltfläche 'Übergeben' ausgewählt ist. Geben Sie Aktualisieren im Feld Bezeichnung ein. Klicken Sie auf OK. Das Fenster 'Relationalen Datensatz hinzufügen' sollte nun folgendermaßen aussehen:
    Fenster 'Relationalen Datensatz hinzufügen'.
  7. Klicken Sie auf Fertig stellen, um Ihr Aktualisierungsformular auf der Seite zu generieren, wie nachfolgend dargestellt:
    Aktualisierte Formularseite.

Die Schaltflächen 'Aktualisierung' und 'Löschen' programmieren

Sie werden erneut Code hinzufügen, um den Benutzer auf die Seite 'all_records.jsp' zu verweisen, um den geänderten Datensatz zusammen mit allen anderen Datensätzen anzuzeigen.
  1. Klicken Sie mit der rechten Maustaste auf die Schaltfläche Aktualisieren, die Sie soeben 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. Klicken Sie im Feld Diese Regel wird verwendet von auf Nur diese Aktion. Stellen Sie sicher, dass das Feld Folgendes enthält: #{pc_Update_record.doUpdate_recordUpdateAction}. Klicken Sie auf OK.
  4. Wiederholen Sie die Schritte 1 bis 3, um den Code in gleicher Weise für die Schaltfläche Löschen auf der Webseite zu editieren. Stellen Sie sicher, dass das Feld Diese Regel wird verwendet von Folgendes enthält: #{pc_Update_record.doUpdate_recordDeleteAction}
  5. Speichern Sie die Seite. Wenn Sie versuchen möchten, einen Datensatz in der Datenbank zu aktualisieren, 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.

Eine Zeilenaktion hinzufügen

Als Nächstes fügen Sie eine Zeilenaktion zur Tabelle auf 'all_records.jsp' hinzu, so dass der Benutzer einen Datenbanksatz für die Aktualisierung auswählen kann. #{param.ID} stellt die ID-Nummer des Datensatzes dar, der auf der Aktualisierungsseite aktualisiert werden soll. Wenn der Benutzer auf eine Zeile klickt, wird die ID-Nummer des betreffenden Satzes als Parameter #{param.ID} an die Seite 'update_record.jsp' gesendet. Anschließend wird der gefilterte relationale Datensatz, den Sie soeben in die Seite 'update_record.jsp' eingefügt haben, ausschließlich den betreffenden Datensatz zum Aktualisieren anzeigen.
  1. Klicken Sie in der Sicht 'Enterprise-Explorer' doppelt auf die Datei all_records.jsp, um diese Datei im Editor zu öffnen. Klicken Sie auf eine beliebige Stelle in der Datentabelle. Öffnen Sie die Sicht "Eigenschaften".
  2. Klicken Sie in der Sicht 'Eigenschaften' in der Liste der HTML-Tags unter hx:dataTableEx auf die Registerkarte Zeilenaktionen.
  3. Klicken Sie auf Aktion hinzufügen, die ausgeführt wird, wenn eine Zeile angeklickt wird. Der Dialog 'Eine Zeilenaktion konfigurieren' wird geöffnet. Wählen Sie Bei Klick auf die Zeile wird eine Anforderung an den Server gesandt, wobei Zeileninformationen als Parameter übergeben werden aus, und klicken Sie anschließend auf OK. Eine Spalte wird zur Datentabelle hinzugefügt.
  4. Klicken Sie in der Sicht 'Eigenschaften' auf die Registerkarte hx:requestRowAction.
  5. Klicken Sie auf Regel hinzufügen. Der Dialog 'Navigationsregel hinzufügen' wird geöffnet.
  6. Wählen Sie in der Dropdown-Liste 'Seite' update_record.jsp aus. Wählen Sie im Feld 'Diese Regel wird verwendet von' die Option Nur diese Aktion aus. Das Feld 'Nur diese Aktion' wird automatisch mit #{pc_All_records.doRowAction1Action} ausgefüllt. Dieser Wert wurde beim Hinzufügen der Zeilenaktion erstellt. Klicken Sie auf OK. Wenn das Feld nicht automatisch mit der voranstehenden Methode ausgefüllt wird, geben Sie die Methode in das Feld ein, und fügen Sie Folgendes zu ClassifiedsTutorial/Java Resources: src/pagecode/All_records.java hinzu:
    public String doRowAction1Action() {
    				return "";
    }
  7. Klicken Sie in der Sicht 'Eigenschaften' auf die Registerkarte Parameter unter 'hx:requestRowAction'. Klicken Sie auf Parameter hinzufügen, und geben Sie anschließend im Feld 'Name' ID ein. Sie müssen den Parameter ID an die Spalte ID binden. Die Zeilenaktion an die Spalte ID der Datenliste zu binden heißt, dass beim Anklicken der Zeile die ID des Datensatzes in der Liste der Anforderungsparameter ist.
    1. Klicken Sie auf Wertund anschließend auf die Schaltfläche Seitendatenobjekt auswählen .
    2. Erweitern Sie auf der Registerkarte Datenobjekt die Option all_recordlist (Service Data Object) > all_recordlist (ADS), und wählen Sie ID (java.lang.Integer) aus.
    3. Klicken Sie auf OK.
Wenn der Benutzer nun auf eine Zeile klickt, kann er auf der Website Informationen über die entsprechende Anzeige aktualisieren. Speichern Sie die Datei, und testen Sie die Seite, wenn Sie möchten. Denken Sie daran, zunächst die Datei 'all_records.jsp' zu öffnen, da dies die Seite ist, die eine Verbindung zu 'update_record.jsp' herstellt.

Prüfpunkt für die Lerneinheit

Sie haben Lerneinheit 1.6 abgeschlossen. In dieser Lerneinheit haben Sie gelernt, wie Sie Webseiten erstellen, die Datensätze in einer Datenbank aktualisieren.
< Vorherige Lektion | Nächste Lektion >

Rückmeldung