1

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

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

我收到以下编译错误:

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

这是如何引起的,我该如何解决?

4

1 回答 1

4

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

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

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

于 2012-09-03T11:55:35.203 回答