2014-02-21 52 views
1

我正在研究cookie,並能夠使用基於scriptlet的JSP創建和閱讀它們,但是當我嘗試使用JSTL來做同樣的事情時,它不顯示我所有的cookie,只顯示「JSESSIONID ...」並與我的另一個項目,它顯示了我創建的cookie。我在這裏的問題是,爲什麼,似乎適合我的,但不是我的瀏覽器.. 這裏是我嘗試使用JSTL做:與JSTL一起閱讀cookies

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<c:forEach var="cookieVal" items="${requestScope.cookies}" > 
    <tr> 
     <td align="right">${cookieVal.name}</td> 
     <td>${cookieVal.value}</td> 
    </tr> 
</c:forEach> 

而我的其他項目的工作:

<% Cookie[] cookies = request.getCookies(); 
for (int i = 0; i < cookies.length; i++) { 
    Cookie cookie = cookies[i];%> 
    <tr> 
     <td><%=cookie.getName()%></td> 
     <td><%=cookie.getValue()%></td> 
    </tr> 
<%}%> 

我在我的項目庫文件夾裏有m個JSTL .jars ... 謝謝!

回答

2

requestScope.cookies將搜索名爲cookies的請求屬性。如果您想訪問請求的Cookie屬性,則需要pageContext.request.cookies

也就是說,訪問cookie是你應該用Java代碼,在控制器(servlet)內部,而不是在應該只處理HTML代的視圖(JSP)中做的事情。

+0

我忘了告訴訪問名爲cookeName cookie值,其實我有這個屬性('餅乾[] =餅乾request.getCookies();'),發現我的問題(由如此愚蠢方式......)我實際上是將我的新cookie添加到我的「響應」屬性而不是我的「請求」......這麼愚蠢的哈哈,但謝謝你! – migmig

3

您可以通過${cookie.cookieName.value}