#arrays #iteration #jstl #el
#массивы #итерация #jstl #el
Вопрос:
Я хотел бы использовать «Массив» в JSTL, который выглядит следующим образом
<c:set var="hideMe" value="${['A','B','C','D']}" scope="application" />
У меня также есть вызываемый глобальный ${checkPageName}
параметр, в котором указано имя текущей страницы, на которой я нахожусь, поэтому я могу свериться с ним, как часть логики (например <c:if test="${checkPageName != hideMe}"> ... </c:if>
)
Логика, лежащая в основе этого, заключается в том, что если A, B, C or D
существует, то я буду препятствовать отображению определенной части информации пользователю.
Кто-нибудь знает, как я перебираю массив JSTL?
Затем логика должна решить, что если A, B, C or D
НЕ существует, то мы показываем конкретную информацию пользователю.
Я пробовал;
<c:forEach items="${hideMe}">
<c:set var="hide" value="true" />
</c:forEach>
<c:if test="${hide != 'true'}">
<div class="showMe">
<h1>Hello Sweetie</h1>
</div>
</c:if>
Не мог бы кто-нибудь указать мне правильное направление?
ОБНОВЛЕНИЕ: теперь я исправил это сам, используя <c:forTokens>
, см. Решение ниже
Ответ №1:
Итак, я понял это в конце;
<c:set var="hideMe" value="false" />
<c:forTokens items="A,B,C,D" delims="," var="excludeDisplay">
<c:if test="${checkPageName == excludeDisplay}">
<c:set var="hideMe" value="true" />
</c:if>
</c:forTokens>
<c:if test="${hideMe == 'false}">
DO SOMETHING
</c:if>
checkPageName — это глобальная переменная, которую я проверяю в своем коде для проверки правильности имен страниц…
Итак, я устанавливаю переменную по умолчанию с именем HideMe со значением false, затем я использую forTokens для создания переменной с именем excludeDisplay для значений A, B, C или D.
Затем я сверяю эти значения с моей глобальной переменной и, если они совпадают, перезаписываю скрытую переменную значением true, которое затем используется для запуска содержимого, которое я хочу показать. Если значение переменной равно false, покажите содержимое, если оно true, ничего не делайте.
Я надеюсь, что это поможет кому-то еще, и я рад подробнее остановиться на некоторых более темных моментах, если кому-то нужна дополнительная информация…