2012-06-03 11 views
18
boolean

Dies ist der Fehler Ich erhalte,Kann nicht von Objekt werfen

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

    An error occurred at line: 13 in the jsp file: /index.jsp 
    Cannot cast from Object to boolean 

Dies ist mein Code:

Controller-Servlets

if(authentication.verifyCredentials(request.getParameter("username"), 
    request.getParameter("password"))) 
{ 
     session.setAttribute("username", request.getParameter("username")); 
     session.setAttribute("loggedIn", true); 
     dispatcher.forward(request, response); 
} 

ich auch versucht,

session.setAttribute("loggedIn", new Boolean(true)); 

JSP

<% 
    if(session.getAttribute("loggedIn") != null) 
    { 
     if(((boolean)session.getAttribute("loggedIn"))) 
     { 
      response.sendRedirect("Controller"); 
     } 
    } 
%> 

Ja ich recherchiert und sah auch die früheren Stackoverflow post; aber ich kann mein Problem immer noch nicht lösen. Bitte assistieren.

Antwort

21

Versuchen Sie es zu Boolean (nullable) Gießen statt boolean in der JSP:

if(((Boolean)session.getAttribute("loggedIn"))) 
{ 
    response.sendRedirect("Controller"); 
} 
+6

Denken Sie daran, dass alle Kleinschreibungstypen eingebaute primitive Typen sind, die 'Objekt' nicht erweitern. Wenn Sie sie mit Referenzen verwenden möchten, müssen Sie die Großbuchstabenversionen verwenden, die "Boxed" -Typen sind. – Wormbo

+0

Vielen Dank für den praktischen Tipp! Weiter kann ich 'Boolean' nicht vergessen :) – mumair

8

versuchen mit

if(((Boolean)session.getAttribute("loggedIn"))) 

statt:

if(((boolean)session.getAttribute("loggedIn"))) 

Attribut als Boolean genommen werden, nicht als Urtyp

Verwandte Themen