Все теги JSTL (а также теги XML и HTML) требуют открывающий тег и закрывающий тег . Открывающий тег определяет, где начинается тело тега (а также позволяет вам определять атрибуты). Закрывающий тег определяет, где заканчивается тело тега.
В следующем примере кода закрывающий тег находится в последней строке.
<c:if test="${category.id == test}" >
<b>Test passed!</b>
</c:if>
Как видите, он имеет то же имя, что и открывающий тег, и начинается с /
(и не имеет атрибутов).
Первые два начальных тега, которые вы включили в свой вопрос, должны работать.