Formulardaten mit request.getAttribute(name)

Status
Nicht offen für weitere Antworten.
R

rudaca

Gast
Hallo allerseits.

Ich habe immer gedacht, dass man Formulardaten aus dem Request-Objekt mit getAttribute-Methode auslesen kann. Bisher habe ich mit Methode getParameter gearbeitet und es hat geklappt. Nun meine Frage ist: Kann ich wirklich mit getAttribute-Methode Formulardaten auslesen? Denn, ich bekomme immer null, während mit getParameter alles bestens funktioniert.

Danke.
 

Rydl

Bekanntes Mitglied
getParameter liest die parameter aus, die vom client an den server geschickt werden - der request eben. diese daten sind in einer map<String, String> gespeichert.

die getAttribute und setAttribute methoden greifen hingegen auf die eine Attribut Map des requestScope zu, deren buckets keine strings, sondern alle möglichen objekte sind (also map<String, Object>). das ist deshalb so, weil man in dieser map request relevante daten speichert, die zum beispiel zur ausgabe der antwortseite nötig sind.

ein formular, deren werte du also nach dem absenden wieder anzeigen möchtest, müsstest du folgendermaßen realisieren:
per getParameter("attributName") alle werte auslesen und per setAttribute("attributName", attribut) den ausgelesenen wert wieder in den requestScope zurück schreiben.

in der jsp kannst du dann per ${requestScope.attributName} darauf wieder zugreifen und dein formular vorausgefüllt an den user schicken.
 
R

rudaca

Gast
Rydl hat gesagt.:
getParameter liest die parameter aus, die vom client an den server geschickt werden - der request eben. diese daten sind in einer map<String, String> gespeichert.

Danke für deine Antwort.

Wenn ich dich richtig verstehe, ist die map<String, Objekt> nach dem absenden eines einfachen HTML-Formulars an sich leer (womit sich null-Rückgabewert beim Aufruf der Methode getAttribute erklären liesse). Oder anders gesagt, die map<String, Object> muss explizit (mitels setAttribute) mit Inhalt versorgt werden.
 

Rydl

Bekanntes Mitglied
genau. diese map wird erst von deinem servlet container (tomcat) erzeugt, sobald ein request eintrifft. er dient lediglich zur speicherung von daten, die während eines request-lifecycles vorhanden sein sollen - und nicht länger.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JSP Formulardaten in externer Java-Klasse verarbeiten Allgemeines EE 2
T HTML-FormularDaten in JavaBean Allgemeines EE 4
T Servlet Request.getAttribut returns null from JSP Select-Box Allgemeines EE 4
M URL Servlet Request getParameter Allgemeines EE 2
G Request zu richtiger App leiten Allgemeines EE 2
J Client Request vom Server aus. Allgemeines EE 2
A Servlet erkennt request Objekt nicht Allgemeines EE 8
E Performance-Problem beim ersten Request Allgemeines EE 4
K Read Request Body Allgemeines EE 4
G jeder request eigener Thread ? Allgemeines EE 4
R Ist es möglich die Request paramter auf "null" zu Allgemeines EE 3
D Objekt geht bei request verloren Allgemeines EE 9
G Http request bekommen parsen und response senden Allgemeines EE 1
G Ablauf bei Request Allgemeines EE 4
M "Auto Client-Request" oder Server-Push oder Ajax – Allgemeines EE 2
N Servlet-Request abbrechen? Allgemeines EE 3
H request in JSP Seite ? Allgemeines EE 4
F Wie auf request.params mittels ${} zugreifen? Allgemeines EE 7
C JSF: request nach ausführung killen? Allgemeines EE 7
J init-Methode eines Servlet ausführen ohne vorherigen request Allgemeines EE 2
B Java-Client für eBaySOAP-API liefert HTTP(400) Bad Request Allgemeines EE 2
TRunKX Wie kriege ich die Auswahl in meinen Server Request? Allgemeines EE 7
S request.getParameter() holt NULL Allgemeines EE 4
K Request Problem Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben