JSP Fehler beim casten , why?

Spin

Top Contributor
Hi, kann mir jemand sagen, welche Fehler ich in meinen Code habe , die zu dem problem führen , dass meine webseite bzw. mein programm nicht funktioniert.?

Java:
 Integer number = (Integer) session.getAttribute("number");
            Integer counter = (Integer) session.getAttribute("counter");

Das casen will nicht :/

org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/Zahlenbeispiel.jsp at line 29

26:
27: // Auslesen von Session-Attributen, ggf, 'null', wenn diese
28: // nicht existieren
29: Integer number = (Integer) session.getAttribute("number");
30: Integer counter = (Integer) session.getAttribute("counter");
31:
32: // Auslesen des Request Parameters 'guess', der die letzte


Weiß einer warum , danke :)
 
Zuletzt bearbeitet:

Antoras

Top Contributor
Sicher, dass
Code:
number
und
Code:
counter
ungleich null sind auch auch Integer-Objekte enthalten?

Und greifst du auch auf den richtigen Scope zu? Wenn du dein Objekt dem ServletContext hinzufügst, dann soltest du anstatt
Code:
session.getAttribute(...)
eher
Code:
application.getAttribute(...)
nutzen.
 

Spin

Top Contributor
ich fang das gerade an zu lernen.
Daher wollte ich lediglich beispiele durchgehen und auch konkret session verwenden.!

Java:
<%!

/* Wir müssen mit Integer-Objekte arbeiten, da Sessions keine primitive Datentypen
 * akzeptieren.
 * Weiterhin gleicht sie einer HshMap. (eindeutige Namen)
 * Session ID's werden über Cookies realisiert.
 *
 **/

    /* Erzeugt eine Zufallszahl twischen 0..100*/
    private Integer guessNewNumber() {
        int result = new Double(Math.random() * 100).intValue();
        return new Integer(result);
    }
    /* Erhöht den Zähler*/
    private Integer inc(Integer counter) {
        int result = counter.intValue() + 1;
        return new Integer(result);
    }
%>
<%
            Integer guess = null;

// Auslesen von Session-Attributen, ggf, 'null', wenn diese
// nicht existieren
            Integer number = (Integer)session.getAttribute("number");
            Integer counter = (Integer)session.getAttribute("counter");
            

// Auslesen des Request Parameters 'guess', der die letzte
// Eingabe des Benutzers - so vorhanden - enthält
            String param = request.getParameter("guess");
            if (param != null) {
                guess = new Integer(param);
            }
%>



<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body style="color:green">
        <%-- Codieren eines URL's --%>
        <form action='<%= response.encodeURL("numberGuess.jsp")%>'>

            Ich denke mir eine Zahl zwischen 0 und 100. Welche?
            <% // ist dies ein neues Spiel oder läuft es bereits?!
                if (number == null) {
                    number = guessNewNumber();
                    counter = new Integer(0);

                    // initialisieren der Sessionattribute
                    session.setAttribute("number", number);
                    session.setAttribute("counter", counter);
                } else {
                    counter = inc(counter);
                    session.setAttribute("counter", counter);
                int result = number.compareTo(guess);

                    switch (result) {
                        case -1:    %> Die gesuchte Zahl ist kleiner. <%
                           // Löchen der Session-Attributes
                       session.removeAttribute("number");
                           break;
                       case 1:      %> Die gesuchte Zahl ist größer. <%
                            break;
                    }
                }
            %>

            Eingabe: <input type="text" name="guess" />
                     <input type="submit" value="Versuchen" />


Hier mal das ganze Beispiel. Ich weiß nicht warum es mir einen Fehler ausgibt :/
Am anfang sind die sachen null.
 

Antoras

Top Contributor
Dein HTML-Code ist fehlerhaft. Du hast vergessen das form-Tag zu schließen.

Füge in die letzte Zeile noch ein </form> ein und dann sollte dein JSP laufen.
 

Spin

Top Contributor
Ne , dass ist nicht der Fehler.

Der will dass einfach nicht Caste und ich brauche inder Session dringend ein Object. Nungut wenn es nicht will , dann halt nicht. Vielleicht finde ich per zufall irgendwann das problem.

Ich meine JSP's sind eigentlich einfach zu programmiueren , machen aber nur ärger -.-
 

ChrisM

Neues Mitglied
Hallo,
versuchs mal mit:
Java:
Integer value = Integer.valueOf("1");

Integer number = Integer.valueOf(session.getAttribute("number"));
Integer counter = Integer.valueOf(session.getAttribute("counter"));

Gruß Chris
 

Antoras

Top Contributor
Also, bei mir funktioniert dein Code so wie er soll...

Java:
Integer number = Integer.valueOf(session.getAttribute("number"));
Integer counter = Integer.valueOf(session.getAttribute("counter"));
valueOf() nimmt nur String-Objekte. Also noch ein toString() aufrufen...

Im übrigen würde ich sowieso empfehlen keine Scriptlets (Java-Code in den JSP) zu benutzen. Das ist unschön, nicht wartbar und viel zu fehleranfällig. Mach das lieber über Servlets und nutze die JSP nur für dein View.

EDIT: Der Fehler tritt auf wenn guess null ist, deine beiden Integerwerte number und counter aber schon einen Wert zugewiesen bekommen haben. Kann beispielsweise passieren wenn du die Seite ohne GET-Parameter refreshst Schreib hinter das else-Statement noch ein
Code:
if(guess != null)
hin, dann umgehst du den Fehler. Wobei das wie gesagt alles andere als schön programmiert ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Fehler 1053 beim Beenden von Tomcat Web Tier 25
F Fehler beim erstellen des EJB - Moduls! Web Tier 4
A Fehler in der Deployment-Description Web Tier 1
G Ersetzen von @ManagedBean Annotation durch @named erzeugt Fehler Web Tier 3
M Ajax Fehler zur Laufzeit Web Tier 5
B JSF Internationalisierungs-Fehler auf Remoteserver Web Tier 12
H JSF Fehler bei Zugriff auf f:attribute Web Tier 2
D Fehler: Cookies nicht gesetzt Web Tier 5
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
T Fehler - Unable to restore sessions Web Tier 3
A JSF Fehler bei Sonderzeichen? Web Tier 2
A Beispiel wirft Fehler. JSF 2.0 / Tomcat / Eclipse Web Tier 2
R Exception? Was für ein Fehler? Web Tier 3
J Fehler Tomcat/JSP findet Methode nich Web Tier 3
pkm Problem beim Import eines dynamischen Webprojekts als .zip Web Tier 2
Rudolf Glassfish stoppen beim Start ALLE Applikationen zu deployen Web Tier 3
T JSF Primefaces beim öffnen eines p:dialog wird eine neue View ManagedBean erstellt Web Tier 2
M Exception beim Erstellen einer Query Web Tier 9
M JSP Problem beim deployen auf Tomcat Web Tier 2
H JSP Class not found beim Applet-Start Web Tier 4
S JSF Probleme beim redirect im ExceptionHandler Web Tier 2
B JSP Warning [unchecked] beim Build von JSP Web Tier 5
D Probleme beim installieren von WebBeans Web Tier 2
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
I Beim zurück-Link wird immer ein Request ausgeführt Web Tier 5
K [GWT] Probleme beim asynchronen Methodenaufruf mit GWT-RPC Web Tier 8
A Tomcat: beim Start des Servers einmalige Aktion aufrufen (Problem gelöst) Web Tier 2
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9

Ähnliche Java Themen

Neue Themen


Oben