Вопрос по java – Получение значений cookie и массивов в тегах JSTL

5

При получении куки мне нужно использовать:

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

Ваш Ответ

1   ответ
14

${cookie} указывает наMap<String, Cookie> с именем куки в качестве ключа карты иCookie Объект в качестве значения карты. Каждая итерация в течениеMap в<c:forEach> дает вамMap.Entry спина, которая в свою очередь имеетgetKey() а такжеgetValue() методы. Ваша путаница в том, чтоCookie объект имеет в свою очередьalso 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> потому что это позволяет вам легкий прямой доступ к значению куки, когда вы уже знаете имя заранее. В приведенном ниже примере предполагается, что этоcookieName:

${cookie.cookieName.value}

Ваш пример списка, кстати, недействителен.var не должен ссылаться на то же имя, что и сам список.

Error: User Rate Limit Exceeded Akash
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Akash
Error: User Rate Limit Exceededstackoverflow.com/questions/5395308/…Error: User Rate Limit Exceededstackoverflow.com/tags/el/infoError: User Rate Limit ExceededMapELResolver docs.oracle.com/javaee/6/api/javax/el/MapELResolver.html

Похожие вопросы