Вам необходимо начинать имена свойств со строчной буквы.${Section.LangList}
не будет работать, оно должно быть ${Sections.langList}
.
<c:forEach var="List" items="${Section.langList}">
<c:if test="${List['Lang'] == List['Id']}">
...
</c:if>
</c:forEach>
Если это все еще не работает, другая возможная причина состоит в том, что тип данных обеих сторон различен, дажехотя они содержат одинаковое значение.Например, String
значение "42"
против Integer
значение 42
.Вы должны убедиться, что типы данных совпадают.
Не имеет отношения к конкретной проблеме, ваше соглашение об именах ужасно.Каждый элемент List<Language>
, безусловно, не является другим List
, но, вероятно, классом Language
.Кроме того, использование скобки для доступа к свойству с фиксированным именем не требуется.Просто используйте обозначение ${bean.property}
.Следующее сделает ваш код более соответствующим соглашениям о присвоении имен и более самодокументируемым:
<c:forEach var="language" items="${section.languages}">
<c:if test="${language.lang == language.id}">
...
</c:if>
</c:forEach>
Мне все еще интересно, как ${language.lang}
имеет смысл в этом контексте.