0

index.jsp にスクリプトレットがあります。スクリプトレットが行うべきことは、「session.getAttribute」から情報を取得して div に表示することですが、ユーザーがログインしていなくても index.jsp を実行する必要があります。

スクリプトレットはこちら

<div class="templatemo_content_left_section">
40:  <h1>Bem Vindo</h1>

40:  <%= session.getAttribute("currentSessionUser")%>
41:   <%if (session.getAttribute("currentSessionUser").equals("")){%>
42: <a href="Login.jsp"><b>Login</b></a>
43:<%}
44: else{%>
45:<a href="logout.jsp"><b>Logout</b></a>
46:<%
47:}
48:%>

私が取得したログには、「43行目でJSPページ/Index.jspを処理中にメッセージ例外が発生しました」というエラーが表示されます

4

1 に答える 1

0

session.getAttribute()属性が存在しない場合は null を返します。それは明示的に文書化されています。したがって、明らかにequals()、結果を呼び出すと、NUllPointerException が発生します。代わりに結果を null と比較します。

 <%if (session.getAttribute("currentSessionUser") == null)

または、JSP EL と JSTL を使用することをお勧めします。スクリプトレットは避けるべきです:

<c:choose>
    <c:when test="${empty sessionScope.currentSessionUser}">
        <a href="Login.jsp"><b>Login</b></a>
    </c:when>
    <c:otherwise> 
        <a href="logout.jsp"><b>Logout</b></a>
    </c:otherwise>
</c:choose>
于 2013-02-15T23:28:17.673 に答える