PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JSP-Neuling: Methoden-Infos (request.getParamterValues)


Flipper
2005-01-08, 02:18:44
Ich will über die Methode request.getParameter einen Array an Werten bilden, die ich per Formular bekomme (genauer gesagt aus einer Reihe von Checkboxen).
HTML-Schnipsel dazu:

<input type="checkbox" name="f_korrekt[]" value="o1">
<input type="checkbox" name="f_korrekt[]" value="o2">

Das funktioniert auch soweit ich das beurteilen kann, folgende Ausgabe der jeweils angekreuzten Werte funktioniert:

String paramValues[] = request.getParameterValues( "f_korrekt[]" );

if (paramValues!=null) {
for (int i = 0; i < paramValues.length; i++) {
out.println(paramValues[i]+"<br>");
//out.println(paramValues.get(i)+"<br>");
}
}

Das funktioniert wie gesagt. Wenn ich aber das zweite, oben kommentierte, out.println(paramValues.get(i)) auskommentiere, dann gibts eine NullPointer-Exception. Wieso das? Ist das kein Array, wenn nein - was dann? Wo find ich genauere Infos zu der Methode request.getParameterValues und ihrem Rückgabewert? Ich hab da (http://java.sun.com/j2se/1.4.2/docs/api/index.html) jedenfalls nix brauchbares gefunden, die Methode gibts aber offensichtlich doch sonst würds ja anders herum nicht funktionieren.

Was ich eigentlich will ist in Ruhe und Frieden überprüfen, was der User angeklickt hat und was nicht, und das schön und ordentlich in einem stinknormalem Array.
Ich fühle mich in meiner Programmierer-Ehre (falls es sowas gibt und ich sowas habe) gekränkt, wenn ich jetzt 50 Zeilen if (f_korrekt1a/b/c... = request.getParameter("f_korrekt1a"); usw. mache, wofür gibts Arrays!
Ich bin relativ neu bei JSP, bisher hab ich alles (und das war nicht grade wenig) in PHP gemacht.
Ach ja.. bietet die Klasse Array eigentlich keine vernünftigen Methoden an, um zu überprüfen, ob sie Wert X enthält? Oder bin ich zu blöd die richtige zu finden? Hab hier (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Array.html) und in der Umgebung jedenfalls nix gefunden, scheiss API :(

/edit: sorry für den relativ unsinnigen thread-titel, ich wollte mir noch einen besseren überlegen, hab ihn dann aber vorm "submit" drücken nicht mehr kontrolliert

Zarathustra
2005-01-10, 09:51:23
jsp setzt bein Datenaustausch in Formularen oft den Einsatz von ArrayList voraus. Deshalb, versuch mal statt eines Arrays mit einer ArrayList zu arbeiten.
Ist eigentlich das gleiche wie ein Array, nur dynamisch in der Größe und alles wird mit Methoden gemacht ("get(i)"). Wahrscheinlich wird (wegen des fehlens der Zugriffsmöglichkeit über Methoden) das Array schlicht nicht akzeptiert bzw. gefüllt.

Soweit meine Intention, ich arbeite in meinem Praktikum seit Monaten an jsp, java-struts und sowas, und da benutzen wir nur ArrayList.

Flipper
2005-01-14, 21:58:29
Ich hab jetzt ein bisschen was mit ArrayLists gemacht, und das gefaellt mir schon viieeel besser als normale Arrays - danke sehr!
Wieso diese Funktion (getParameterValues) undokumentiert ist, bzw. wo sie dokumentiert ist weiss ich zwar noch immer nicht, aber ich hab halt "um das Problem herum" programmiert.

Achill
2005-01-20, 18:22:09
Ich nehme einmal an, dass du auf dem Tomcat entwickelst?

Wenn ja, dann findest du unter:

http://localhost:8080/tomcat-docs/

die Tomcat Dokumentation und dort liegt auch die Dokumentation zur JSP API - da eine JSP Seite aber im Endeffekt ein Servlet ist, wirst du nicht um die Servlet API herum kommen, um an bestimmte Informationen heran zu kommen...

JSP: http://localhost:8080/tomcat-docs/jspapi/index.html
Servlet: http://localhost:8080/tomcat-docs/servletapi/index.html

Entwickelst du auf einer anderen Plattform, so sollte diese SUNs Spezifikationen zu JSP und Servlets umsetzen und somit solltest du auch mit SUNs Dokumenten weiter kommen:

JSP: http://java.sun.com/products/jsp/
Servlets: http://java.sun.com/j2ee/1.4/docs/api/index.html und dort die Packages "javax.servlet.*; javax.servlet.http.*;"