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のJSPELに制限する方がよいことに注意してください。スクリプトレットはもう使用しないでください。

于 2012-09-03T11:55:35.203 に答える