${current...">

Getting cookie and array values ​​in JSTL tags

When receiving cookies, I need to use:

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

But using custom arrays, why do we need to skip the .value function?

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

A cookie contains a .getValue () function that returns the contents of a cookie in a string format, so how does currentCookie.value.name work?

+6
source share
1 answer

${cookie} points to Map<String, Cookie> with the cookie name as the map key and Cookie as the map value. Each iteration over Map in <c:forEach> gives you Map.Entry back, in turn, getKey() and getValue() . Your confusion is that the Cookie object, in turn, also has the getValue() method.

 <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> 

This is a Map<String, Cookie> because it allows you to easily access directly the cookie value if you already know this name in advance. The example below assumes it has a cookieName :

 ${cookie.cookieName.value} 

An example of your list, by the way, is invalid. var must not refer to the same name as the list itself.

+15
source

Source: https://habr.com/ru/post/917376/


All Articles