Enumeration paramNames liefert Werte durcheinander

Status
Nicht offen für weitere Antworten.

limes

Mitglied
Hallo,

Ich habe ein Formular, und will mir dann mit folgendem Code die Felder des Formulares holen:

Java:
Enumeration paramNames = request.getParameterNames();
		while(paramNames.hasMoreElements())
		{
			String param = (String) paramNames.nextElement();
			paramValues = request.getParameter(param);
                        System.out.println("Parametername: "+param+" und der Wert: "+paramValues);
	
		}

Das Problem ist jetzt nur, dass die Daten aus dem Formular nicht nacheinander, sondern ganz durcheinander geliefert werden. Außerdem wird auch noch folgendes übergeben:

Parametername: abschicken.y und der Wert: 11
Parametername: abschicken.x und der Wert: 58

Wie kommt das, und wieso werden die Daten alle durcheinander übergeben, und nicht der Reihe nach?

Vielen Dank!
 

maxxi

Bekanntes Mitglied
Parametername: abschicken.y und der Wert: 11
Parametername: abschicken.x und der Wert: 58
Kenn ich aus PHP. Das ist jene x/y-Position des Cursers, wo du den Submit-Button angeklickt hast. Im Normalfall kannst du das ignorieren.

Warum die Daten nicht in deiner gewünschten Reihenfolge kommen, weiß ich nicht. Aber ist das nicht egal?
 

eRaaaa

Top Contributor
/edit: hmm, vergesst es :D

zum thema: ist das nicht normal, dass er irgendwie iteriert ?!
 
Zuletzt bearbeitet:
S

Spacerat

Gast
OT: Das mit dem x und dem y sind Parameter eines Image-Buttons und werden eigentlich von jedem DOM-Unterstützendem Browser gesendet.
Zum Thema: Ist es möglich, das die Formulardaten im Array alphabetisch nach ihrem Namen sortiert sind, wie z.B. in PHP?
 
Zuletzt bearbeitet von einem Moderator:

musiKk

Top Contributor
Die Reihenfolge sollte auch keine Rolle spielen. Zudem hängt die Reihenfolge einer Enumeration (die ja auch nur ein Iterator ist) vom Objekt ab, über das iteriert wird. Die Methode [c]getParameterMap()[/c] lässt darauf schließen, dass es eine Map ist und bei dieser ist eine bestimmte Reihenfolge nicht zwingend.
 

limes

Mitglied
Das mit dem abschicken.y und abschicken.x ist in immer so oder? Egal was?
Die kann ich also einfach ingorieren, ohne dass Probleme dabei auftreten?


Das Formular, von dem die Daten kommen, soll in verschiedene Tabellen in einer Datenbank geschrieben werden.
Ich habe also den Namen des input-Feldes (text, texarea, radio,...) und den Inhalt der Felder. Das siehst jetzt z.B. so aus:

Name Value
table1_spalte1 irgendetwas
table3_spalte4 noch etwas
table2_spalte2 mehr
....

Der Name besteht hier jetzt aus dem Namen der Tabelle und dem Namen der Spalte.
Da jetzt eben alles durcheinander ist, frage ich mich, wie ich die Daten an besten sortieren kann, damit ich etwas in dieser Art erhalte:

table1_spalte1
table1_spalte2
table1_spalte3
table2_spalte1
....

Ich denke mir mal, das mit gewissen Schleifen und Abfragen man das irgendwie hinbekommt, doch wird das wahrscheinlich ein ziemliches Gewurschtel oder?

Danke
 

Noctarius

Top Contributor
Wenn du z.B. mit Firebug in den Request schaust, siehst du, dass die Parameter schon durcheinander den Browser verlassen. Die Enumeration gibt die Daten genau in der Reihenfolge aus, in der sie im POST Body üvermittelt wurden.

Wie musikk aber schon sagte: Die Reihenfolge sollte keine Rolle spielen
 

musiKk

Top Contributor
Das mit dem abschicken.y und abschicken.x ist in immer so oder? Egal was?
Die kann ich also einfach ingorieren, ohne dass Probleme dabei auftreten?
Ja.
Ich denke mir mal, das mit gewissen Schleifen und Abfragen man das irgendwie hinbekommt, doch wird das wahrscheinlich ein ziemliches Gewurschtel oder?

Danke

Java:
Map<String, String[]> params = new TreeMap(request.getParameterMap);
oder so...

Die Enumeration gibt die Daten genau in der Reihenfolge aus, in der sie im POST Body üvermittelt wurden.

Das dürfte dann eher Zufall sein. Ich denke nicht, dass das spezifiziert ist.
 

Noctarius

Top Contributor
Das dürfte dann eher Zufall sein. Ich denke nicht, dass das spezifiziert ist.

Ich sagte auch nicht, dass es spezifiziert ist, aber die Map die du rausbekommst ist nun mal genau in der Reihenfolge in welcher die Daten aus dem POST-Body gelesen wurden :D

Das war mehr eine Art Tipp, keine Ansage an irgendeine Spezifikation
 

musiKk

Top Contributor
Jojo, wollte damit nur deutlich machen, dass das von der Implementierung abhängt. Nicht, dass das bei der vom OP anders ist und er sich wundert. ;)
 

maxxi

Bekanntes Mitglied
Du kannst bei Formularen auch mit Arrays arbeiten. Z. B.:
input_name[0]
input_name[1]
input_name[2]
Mehrdimensional müsste auch gehen, glaube ich:
textarea_comment[0][0]
textarea_comment[0][1]
textarea_comment[1][0]
 

Noctarius

Top Contributor
Trotzdem bin ich der Meinung, dass bei einer Webanwendung die Reihenfolge der Werte keine Rolle spielen sollte.
Wenn ich sie trotzdem in einer festen Reihenfolge benötigen sollte, hole ich sie mir zur Not einzeln aus der ParameterMap (per String-Named-Key).
 

limes

Mitglied
Du kannst bei Formularen auch mit Arrays arbeiten. Z. B.:
input_name[0]
input_name[1]
input_name[2]
Mehrdimensional müsste auch gehen, glaube ich:
textarea_comment[0][0]
textarea_comment[0][1]
textarea_comment[1][0]

Mit JSP könnte man wohl ein Array definieren, wo ich dann meine Daten speichern kann.
Doch funktioniert das auch anders, z.B mit JSTL?
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
L Enumeration Wetter - leer initialiseren? Java Basics - Anfänger-Themen 5
D Enumeration in String konvertieren und ausgeben Java Basics - Anfänger-Themen 1
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
OnDemand Enumeration <> JList Java Basics - Anfänger-Themen 5
F Problem mit Enumeration Java Basics - Anfänger-Themen 6
W Interface Enumeration Java Basics - Anfänger-Themen 8
M NoSuchElementException/Enumeration Java Basics - Anfänger-Themen 4
enne87 Enumeration Java Basics - Anfänger-Themen 3
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
G Enumeration mit HashMap? Java Basics - Anfänger-Themen 4
G Länge einer Enumeration feststellen Java Basics - Anfänger-Themen 15
E Enumeration eine Art Array? Java Basics - Anfänger-Themen 4
F 'for'-Schleife und Enumeration - innen Vs. außen Java Basics - Anfänger-Themen 4
M Erstes Element einer Enumeration? Java Basics - Anfänger-Themen 6
R Enumeration oder Iterator? Java Basics - Anfänger-Themen 2
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
J HashSet Methode contains liefert false (hash Methode überschrieben) Java Basics - Anfänger-Themen 3
M Methoden while liefert nur den ersten Datensatz Java Basics - Anfänger-Themen 12
G Methode liefert "Min@15db9742" als Ausgabe Java Basics - Anfänger-Themen 2
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
J Kosinussatz liefert falschs Ergebnis Java Basics - Anfänger-Themen 2
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
E Methoden Methode liefert keinen Wert zurück Java Basics - Anfänger-Themen 16
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
B Rechnung ohne Klammer liefert komisches Ergebniss Java Basics - Anfänger-Themen 3
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
U ArrayList.get() liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
L replaceAlll liefert Exception... Java Basics - Anfänger-Themen 3
M System.getProperty("java.vm.version") liefert build-Version Java Basics - Anfänger-Themen 4
R Hashset.add(Array) liefert immer true? Java Basics - Anfänger-Themen 23
F charAt-Methode liefert falsche Unicode-Werte Java Basics - Anfänger-Themen 8
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6
A contains bzw. indexOf liefert keine Treffer? Java Basics - Anfänger-Themen 3
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
F arraylist.get() liefert Speicheradresse?!? Java Basics - Anfänger-Themen 2
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
L Woerterbuch liefert immer "null" Java Basics - Anfänger-Themen 41
R warum liefert ein und dieselbe funktion nicht dasselbe return?? Java Basics - Anfänger-Themen 7
3 Collections containsKey() liefert false obwohl equals() true liefert Java Basics - Anfänger-Themen 6
M isHidden() von java.io.File liefert immer true in Windows Java Basics - Anfänger-Themen 3
B SQL Recortset liefert nur eine Zeile Java Basics - Anfänger-Themen 4
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
J Datentypen Textfield.getText() liefert keinen String Java Basics - Anfänger-Themen 4
C warum liefert equals kein TRUE Java Basics - Anfänger-Themen 12
Y System.console() liefert immer null zurück. Java Basics - Anfänger-Themen 6
X Datentypen Vergleichsmethode liefert immer null Java Basics - Anfänger-Themen 3
J Batch Datei liefert CLASS NOT FOUND Warum !? Java Basics - Anfänger-Themen 11
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
S atan liefert falsches Ergebnis Java Basics - Anfänger-Themen 6
A JavaMail liefert Datenmüll Java Basics - Anfänger-Themen 5
C HashMap liefert HashMap zurück - incompatible types Java Basics - Anfänger-Themen 2
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
H GPS über ser. Schnittst. liefert teilweise Sonderzeichen Java Basics - Anfänger-Themen 3
G Parser liefert StackOverflow error Java Basics - Anfänger-Themen 6
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
H -Djava.library.path liefert in der Konsole "ClassNotFou Java Basics - Anfänger-Themen 4
Z DB-Abfrage liefert alte Werte Java Basics - Anfänger-Themen 11
M Mouse Listener liefert das ergebnis 2 mal! Java Basics - Anfänger-Themen 2
B equals() der Klasse Objects liefert unerwartetes Ergebnis Java Basics - Anfänger-Themen 17
P JPanel.getWidth() liefert immer 0 Java Basics - Anfänger-Themen 6
S DAY_OF_WEEK liefert immer gleichen Wert Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben