Я отвечу на свой вопрос. Меня осенило, и я понял, что java.lang.Boolean
- это класс, а не примитив. Это означает, что значение может быть нулевым, и после тестирования это значение наверняка будет нулевым.
Если значение не определено, то в него передается null. В противном случае значение - это то, что было передано. Итак, первое, что я делаю после объявления атрибута, - проверяю, является ли он нулевым. Если это null, то я знаю, что значение не было передано мне или кто-то передал мне null, и его нужно преобразовать в какое-то значение по умолчанию:
<c:if test="${visible == null}"><c:set var="visible" value="${true}" /></c:if>