[英]How to pass an attribute from JSP to tag file. Override the value in tag, and get the updated value in JSP
我有一個 JSP 聲明一個整數值
<c:set var="rowCount" value="0" />
我試圖在幾個標簽中使用它
<product:attribute rowCount="${rowCount}" attrKey="${msg_site}:" attrValue="${product.site}" />
<product:attribute rowCount="${rowCount}" attrKey="${msg_name}:" attrValue="${product.name}" />
<product:attribute rowCount="${rowCount}" attrKey="${msg_type}:" 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 聲明了一個新變量。 如何重用該值而不是聲明一個新變量?
我試圖為變量的第一個聲明添加范圍,但它不起作用。
然后我嘗試為它們全部添加,如下所示:
<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"/>
現在我得到了我想要的結果。 但我仍然不明白為什么我不能覆蓋它兩次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.