在检索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怎么工作?
该${cookie}指向Map<String, Cookie>与cookie的名称作为地图键和Cookie对象映射值。Mapin上的每次迭代都会<c:forEach>为您提供Map.Entry反面,而back又具有getKey()和getValue()方法。您的困惑是Cookie对象 又 具有getValue()方法。
${cookie}
Map<String, Cookie>
Cookie
Map
<c:forEach>
Map.Entry
getKey()
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:
cookieName
${cookie.cookieName.value}
您的列表示例是无效的。的var名称不应与列表本身相同。
var