错误:不兼容的操作数类型和对象

时间:2012-09-03 11:46:43

标签: java jsp

在下面的Java代码中放置一个JSP文件,

if (false == session.getAttribute("loggedin")) {  
    response.sendRedirect("login.jsp");
}
else if (null == session.getAttribute("loggedin")) {
    response.sendRedirect("login.jsp");
}

我收到以下编译错误:

  

不兼容的操作数类型和对象

这是如何引起的?如何解决?

1 个答案:

答案 0 :(得分:3)

session.getAttribute()返回一个Object。无法将对象与布尔值进行比较。所以表达式false == session.getAttribute("loggedin")无效。如果要检查Boolean.FALSE是否存储在会话属性中,则代码应为

 if (Boolean.FALSE.equals(session.getAttribute("loggedin")))

请注意,您最好将所有Java代码放在常规Java类中,并将自己限制在JSP中的JSP EL。不应再使用Scriptlet了。