2012-06-03 16 views
18

Questo è l'errore che sto ricevendo,non può lanciare da Object a boolean

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 

Questo è il mio codice:

controller Servlet

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

Ho anche provato

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

JSP

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

Sì, ho studiato e ha visto anche la StackOverflow precedente post; tuttavia non riesco ancora a risolvere il mio problema. Si prega di aiutare.

risposta

21

Prova a trasmettere al Boolean (nullable) anziché boolean nella JSP:

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

Ricordare che tutti i tipi minuscoli sono tipi primitivi incorporati che non estendono 'Object'. Se si desidera utilizzarli con riferimenti, è necessario utilizzare le versioni maiuscole, che sono tipi "in scatola". – Wormbo

+0

Grazie per il suggerimento utile! In poi non posso dimenticare 'Boolean' :) – mumair

8

prova con

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

anziché:

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

attributo deve essere presa come Boolean, non tipo primitivo

Problemi correlati