2015-04-01 24 views
1

我正在做一些測試和我都面臨着奇怪的問題,我在Servlet中設置會話:JSTL閱讀如果會話值設置不正常

sessions.setAttribute("logged_in", "true"); 

這是我的JSTL網頁上的代碼,我希望它來檢查會話名稱「LOGGED_IN」設置

<c:choose> 
    <c:when test="${not empty sessionScope.logged_in}"> 
     <a href="/logout">Logout</a> 
    </c:when> 
    <c:otherwise> 
     <a href="/login">Login</a> 
    </c:otherwise> 
</c:choose> 

但是,當我檢查我的網站,它輸出:

<a href="/logout">Logout</a> 
<a href="/login">Login</a> 

它應該只輸出登錄或註銷,不能同時輸出。任何想法可能是錯誤的?

+2

您是否在庫中添加了jstl jars並在您的jsp中添加了<%@ taglib prefix =「c」 uri =「http://java.sun.com/jsp/jstl/core」%>? – Zeeshan 2015-04-01 09:48:54

+0

右鍵單擊瀏覽器並選擇「查看頁面源」。如果您看到c:選擇內部,這意味着標籤不會被服務器執行。見Zeeshan的評論。 – 2015-04-01 10:26:19

+0

謝謝!我忘了添加圖書館。 – Lanibox 2015-04-01 10:40:35

回答

1

看起來像標籤不是由服務器執行的。

您是否在圖書館添加了JSTL罐子,並在您的jsp中添加了<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>