Я пытался добавить область видимости только для первого объявления переменной, и она не работала.
Затем я попытался добавить для них все, например:
<c:set var="rowCount" value="0" scope="request" />
и
<%@ attribute name="rowCount" required="true" %>
<c:if test="${rowCount ge 2}" >
</div>
<div class="col-md-12 col-sm-12 col-xs-12 ">
<c:set var="rowCount" value="${0}" scope="request" />
</c:if>
<c:set var="rowCount" value="${rowCount +1}" scope="request"/>
Это сработало частично. Мне удалось добавить новые значения в число строк, но строка
<c:set var="rowCount" value="${0}" scope="request" />
не работала. Это никогда не возвращалось к нулю. Поэтому я изменил его, чтобы иметь локальную переменную и переопределить значение только один раз. вот так:
<%@ attribute name="rowCount" required="true" %>
<c:set var="rowCountInstance" value="${rowCount}" />
<c:if test="${rowCountInstance ge 2}" >
</div>
<div class="col-md-12 col-sm-12 col-xs-12 ">
<c:set var="rowCountInstance" value="${0}" />
</c:if>
<c:set var="rowCount" value="${rowCountInstance +1}" scope="request"/>
Теперь у меня есть результат, который я хочу. Но я все еще не мог понять, почему я не мог переопределить это дважды.