request - Objekt in Java-Klasse

dadom110

Erfahrenes Mitglied
HuHu Zusammen...

bin relativer Neuling in Sachen JSP. Versuche nun damit ein bisschen rum zu spielen. Dazu wollte ich möglichst viele Funktionalitäten in Java Klassen auslagern.

Als Beispiel habe ich mal eine Methode gebaut, die mir alle Elemente eines Formulars in einer Hashtable speichern soll. Leider scheint das nicht so zu laufen wie ich mir das vorgestellt habe:

in der JSP= ich versuche das RequestObjekt an eine Java Methode weiter zu geben
Code:
 Hashtable<String> values=FormularUtils.getTextfeldInhalt2(request);

die entsprechende Java Klasse
Code:
  public static Hashtable getTextfeldInhalt(HttpServletRequest request)
    {
        Hashtable hash=new Hashtable();
        java.util.Enumeration enumer=request.getAttributeNames();
        while (enumer.hasMoreElements())
        {
            String textfeldName=(String)enumer.nextElement();
            String textfeldWert=request.getParameterValues(textfeldName)[0];
            if (textfeldWert==null)textfeldWert="nichtGesetzt";
            hash.put(textfeldName,textfeldWert);
        }
        
        return hash;
        
    }

Leider fliegt der Server damit auf die Nase:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

Generated servlet error:
Code:
     C:\Sun\SDK\domains\domain1\generated\jsp\j2ee-modules\WebApplication2\org\apache\jsp\index2_jsp.java:77: wrong number of type arguments; required 2
                 Hashtable values=FormularUtils.getTextfeldInhalt(request);



Er erwartet zwei Argumente? Lassen mich meine Java Kenntnisse im Stich, oder kann ich das Request Objekt nicht "einfach so" an Methoden übergeben? Oder macht man das sowieso ganz anders :) ?

Grüße
Dom
 
Warum hat deine eine Methode da eine 2 mit im Methodennamen? Ich fürchte du rufst eine andere Methode auf, als du denkst ;)

REINHAUN!
 
Ne das passt, hatte das in diesem Beispiel nur mal teilweise ausgetauscht um zu testen, ob er die Methode wirklich nimmt.

Aber eigentlich sollte die Weitergabe des Request-Objektes an eine JavaKlasse kein Problem darstellen?

Grüße
Dom
 
Nein, sollte es nicht, aber ich glaub ich hab deinen Fehler entdeckt... eine Hashtable speichert doch immer Key Value Paare.. wenn du die parameterisieren willst, musst du natürlich 2 Typen angeben:

Hashtable<String, Object> foo = ...

Du hast nur String da stehen...

REINHAU!N
 

Neue Beiträge

Zurück