小编典典

检索JSTL标签中的cookie和数组值

jsp

在检索Cookie时,我需要使用:

<c:forEach items="${cookie}" var="currentCookie">  
    ${currentCookie.value.name} </br>
</c:forEach>

但是,在使用自定义数组时,为什么我们需要跳过.value函数?

<c:forEach items="${myList}" var="myList">  
    ${myList.name} </br>
</c:forEach>

Cookie包含一个.getValue函数(),该函数以字符串格式返回cookie的内容,那么使用currentCookie.value.name怎么工作?


阅读 473

收藏
2020-06-08

共1个答案

小编典典

${cookie}指向Map<String, Cookie>与cookie的名称作为地图键和Cookie对象映射值。Mapin上的每次迭代都会<c:forEach>为您提供Map.Entry反面,而back又具有getKey()getValue()方法。您的困惑是Cookie对象

具有getValue()方法。

<c:forEach items="${cookie}" var="currentCookie">  
    Cookie name as map entry key: ${currentCookie.key}<br/>
    Cookie object as map entry value: ${currentCookie.value}<br/>
    Name property of Cookie object: ${currentCookie.value.name}<br/>
    Value property of Cookie object: ${currentCookie.value.value}<br/>
</c:forEach>

这是Map<String, Cookie>因为它可以让您在事先知道名称的情况下轻松直接访问cookie值。以下示例假定它是cookieName

${cookie.cookieName.value}

您的列表示例是无效的。的var名称不应与列表本身相同。

2020-06-08