# Formulardaten mit request.getAttribute(name)



## rudaca (23. Jun 2007)

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 (23. Jun 2007)

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 get*Parameter*("attributName") alle werte auslesen und per set*Attribute*("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.


----------



## rudaca (24. Jun 2007)

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 (24. Jun 2007)

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.


----------



## Guest (25. Jun 2007)

Danke. Das hat mir geholfen.


----------

