Hallo,
ist sicher eine einfache Frage:
Habe ein Formular, wo ich Eintragungen vornehmen ich.
Die Seite (mit dem Formular) ist ein Servlet, die u.a. Daten
aus der DB anzeigt etc. Nach dem ich submit clicke,
rufe ich meinen eigenen Servlet-Controller auf, der letzlich
schaut, welche Action auszuführen ist und soll das dann
dementsprechend an das richtige „Model“ weiterleiten.
Mein Insert funktioniert zunächst Prima. Leider weiss ich dann nicht,
wie ich nach dem Insert (was quasi von der Form als „Action“ deklariert
ist, damit mein Controller weisst, was zutun ist) dem Controller
sagen kann, er soll die Resultseite anzeigen!!! Bzw. er
zeigt mir die Resultseite an, jedoch in dem Schwanz der URL hängt
immernoch die Angabe für „Create“ mit dem entsprechenden Parameter,
was dazu führt, dass mein INSERT mehrfach ausgeführt wird.
Zusammenfassend und auf den Punkt gebracht:
Wie kann ich im Servlet sagen, welche URL (Servlet) er dann
nach dem Ausführen einer Aktion anzeigen soll?
Steht die URL im Response-Objekt und kann ich diese manipulieren??
Danke,
Fabian
Hi -
Habe ein Formular, wo ich Eintragungen vornehmen ich.
Die Seite (mit dem Formular) ist ein Servlet, die u.a. Daten
aus der DB anzeigt etc. Nach dem ich submit clicke,
rufe ich meinen eigenen Servlet-Controller auf, der letzlich
schaut, welche Action auszuführen ist und soll das dann
dementsprechend an das richtige „Model“ weiterleiten.
Mein Insert funktioniert zunächst Prima. Leider weiss ich dann
nicht, wie ich nach dem Insert (was quasi von der Form als „Action“
deklariert ist, damit mein Controller weisst, was zutun ist) dem
Controller sagen kann, er soll die Resultseite anzeigen!!!
Der Controller sollte ja eigentlich keine Daten anzeigen, sondern nur auf Aktionen reagieren - Dh. Er holt die gelieferten Parameter, entscheidet anhand des Actionnamens, was gemacht werden soll, instanziert die benötigten Business Logic Klassen und ruft dort dann Methoden mit den Parametern auf.
Nach erfolgreich delegierter Arbeit sollte seine Aufgabe erledigt sein - Er kann dann auf die gewünschte Seite mittels
response.sendRedirect(response.encodeRedirectUrl(„naechsteSeite.jsp“));
weiterleiten. An diese RedirectUrl kannst du nun genau die Parameter anhängen, die du haben möchtest.
Das ist zumindestens ein Weg, den ich bei selbstgeschnitzten MVC-Apps gehe.
Um an schönere Url’s für deine Actions zu kommen, könntest du auch Servlet-Mappings benutzen (Wie es zB. auch das Framework Struts tut).
Dann heissen deine Urls zB. /insert.do?param1=value1 - Und geht an ein Servlet deiner Wahl.
mfG,
J.P.Jarolim