在JSTL标记中检索cookie和数组值

在检索我需要使用的cookie时:

 ${currentCookie.value.name} 

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

  ${myList.name} 

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

${cookie}指向Map ,其中cookie名称为map键, Cookie对象为map值。 在Map进行的每次迭代都会为您提供一个Map.Entry ,后者又有getKey()getValue()方法。 您的困惑是Cookie对象具有getValue()方法。

  Cookie name as map entry key: ${currentCookie.key}
Cookie object as map entry value: ${currentCookie.value}
Name property of Cookie object: ${currentCookie.value.name}
Value property of Cookie object: ${currentCookie.value.value}

它是Map因为它允许您在事先知道名称时轻松直接访问cookie值。 以下示例假定它是cookieName

 ${cookie.cookieName.value} 

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