Cannot cast from Object to boolean

29,433

Solution 1

Try casting it to Boolean (nullable) instead of boolean in the JSP:

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

Solution 2

try with

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

instead of:

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

attribute has to be taken as Boolean, not as primitive type

Share:
29,433
Dennis
Author by

Dennis

I like building stuff

Updated on June 04, 2020

Comments

  • Dennis
    Dennis almost 4 years

    This is the error I am receiving,

    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
    

    This is my code:

    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);   
    }
    

    I also tried this,

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

    JSP

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

    Yes I researched and also saw the previous stackoverflow post; however I still cannot resolve my problem. Please assist.

  • Wormbo
    Wormbo almost 12 years
    Remember, all the lowercase types are built-in primitive types not extending Object. If you want to use them with references, you need to use the uppercase versions, which are "boxed" types.
  • mumair
    mumair over 8 years
    Thank you for handy tip! Onward I can't forget 'Boolean' :)