Как передать атрибут из JSP в файл тега. Переопределите значение в теге и получите обновленное значение в JSP - PullRequest
0 голосов
/ 19 марта 2020

У меня есть JSP, где я объявляю целочисленное значение

<c:set var="rowCount" value="0" />

Я пытаюсь использовать его внутри нескольких тегов

<product:attribute rowCount="${rowCount}" attrKey="${msg_site}&#58;" attrValue="${product.site}" />
<product:attribute rowCount="${rowCount}" attrKey="${msg_name}&#58;" attrValue="${product.name}" />
<product:attribute rowCount="${rowCount}" attrKey="${msg_type}&#58;" attrValue="${product.type}" />

Внутри каждого тега я переопределяю Значение rowCount

<%@ attribute name="rowCount"  required="true" %>
<c:if test="${rowCount >= 2}" >
    </div>
    <div class="col-md-12 col-sm-12 col-xs-12 ">
    <c:set var="rowCount" value="${0}" />
</c:if>

<c:set var="rowCount" value="${rowCount +1}" />

Но, похоже, я объявляю новую переменную для rowCount в каждом теге. Как я могу использовать значение вместо объявления новой переменной?

1 Ответ

0 голосов
/ 19 марта 2020

Я пытался добавить область видимости только для первого объявления переменной, и она не работала.

Затем я попытался добавить для них все, например:

<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"/>

Теперь у меня есть результат, который я хочу. Но я все еще не мог понять, почему я не мог переопределить это дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...