在下面的Java代码中放置一个JSP文件,
if (false == session.getAttribute("loggedin")) {
response.sendRedirect("login.jsp");
}
else if (null == session.getAttribute("loggedin")) {
response.sendRedirect("login.jsp");
}
我收到以下编译错误:
不兼容的操作数类型和对象
这是如何引起的?如何解决?
答案 0 :(得分:3)
session.getAttribute()
返回一个Object。无法将对象与布尔值进行比较。所以表达式false == session.getAttribute("loggedin")
无效。如果要检查Boolean.FALSE
是否存储在会话属性中,则代码应为
if (Boolean.FALSE.equals(session.getAttribute("loggedin")))
请注意,您最好将所有Java代码放在常规Java类中,并将自己限制在JSP中的JSP EL。不应再使用Scriptlet了。