В верхней части моего JSP я записываю часть JSON, возвращенного из ответа:
<c:set var="myListOfValues"><x:out
select="$myData/valuesCollection" escapeXml="false"/></c:set>
, и этот JSON выглядит как строка, представляющая объект:
<valuesCollection>
{"valueStr":"Single"|"valueId":"2019"}
{"valueStr":"Married"|"valueId":"2019"}
{"valueStr":"Divorced"|"valueId":"2020"}
{"valueStr":"Widowed"|"valueId":"2020"}
<valuesCollection>
В идеале я хотел бы фильтровать и возвращать только те значения, которые соответствуют определенному valueId . Первоначально я смотрел на x: parse , но это выкидывало ошибки, потому что он видел json. Сейчас я пытаюсь это:
<c:set var="filteredCollection">
<c:forEach items="${valuesCollection}" var="element">
<c:if test="${element.valueId == 2019}">
<c:out value="${element}" />
</c:if>
</c:forEach>
</c:set>
.. и он говорит, что не может исправить свойство valueId для строки: Свойство 'valueId' не найдено ввведите java.lang.String
Я надеюсь, что есть более простой способ отфильтровать ответ с помощью JSTL. Любые рекомендации действительно приветствуются. Спасибо.