【问题标题】:Cannot cast from Object to boolean无法从对象转换为布尔值
【发布时间】:2012-06-08 01:42:22
【问题描述】:

这是我收到的错误,

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

这是我的代码:

控制器 Servlet

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

我也试过了,

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

JSP

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

是的,我研究并看到了之前的 stackoverflow post;但是我仍然无法解决我的问题。 请帮忙。

【问题讨论】:

    标签: java jsp servlets session-variables


    【解决方案1】:

    试试

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

    代替:

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

    属性必须作为Boolean,而不是原始类型

    【讨论】:

      【解决方案2】:

      尝试将其转换为 Boolean(可为空)而不是 JSP 中的 boolean

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

      【讨论】:

      • 记住,所有小写类型都是内置的原始类型,不扩展Object。如果要将它们与引用一起使用,则需要使用大写版本,即“盒装”类型。
      • 感谢您的方便提示!以后我不能忘记'布尔':)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多