Это как бы вопрос из двух частей.
У меня есть объект person с атрибутом char, который называется "active".У человека есть метод getActive (), который возвращает символ, как и ожидалось.В моем JSTL EL у меня есть следующее:
<c:if test="${person.active == '1'}">Active</c:if>
Это никогда не проходит.Насколько я понимаю, литералы в кавычках в JSTL являются строками (независимо от одинарных или двойных кавычек) и что тип char сохраняется из вызова getActive, поэтому эти два значения не равны, когда getActive () возвращает символ '1'.
В качестве альтернативы я добавил метод isActive (), который возвращает логическое значение.В этом случае следующие работы:
<c:if test="${person.active == true}">Active</c:if>
Вот мои вопросы:
- Правильно ли мое понимание относительно сравнения символов?Если да, есть ли способ преобразовать типы в JSTL, чтобы они были сопоставимы?
- Когда существуют оба метода getActive () и isActive (), какой из них вызывается переводом EL?Кажется, isActive () получает приоритет, но есть ли официально документированный порядок этого?