在 html 中输出 var Status 的值
output the value of var Status in html
我对 jsp 没有太多经验,所以这看起来像是一个愚蠢的问题,但是如何在 forEach 循环中输出 varStatus
的值?
这是循环:
<ul class="local-navigation">
<c:forEach var="tabResource" items="${viewModel.navTabResources}" varStatus="myIndex">
<sling:include resource="${ tabResource }" resourceType="navigation/tab/render" />
</c:forEach>
</ul>
在包含的文件中,我这样调用 varStatus="myIndex":
<a href="#" data-target=".navList-${myIndex.count}" <c:choose>
但是当我构建时,呈现的 html 没有显示来自 varStatus 变量的值(像这样):
<a href="#" data-visibility-target=".navList-">...</a>
我在这里做错了什么?或者更好的问题:如何将 varStatus 变量传递到包含文件的范围?
就在您的 <include>
之前,将您的 varStatus
值设置到 request
范围内,以使其对包含的 JSP 资源可用。
<c:forEach var="tabResource" items="${viewModel.navTabResources}" varStatus="myIndex">
<c:set var="loopIndex" value="${myIndex}" scope="request" />
<sling:include resource="${tabResource}" resourceType="navigation/tab/render" />
</c:forEach>
现在用 <jsp:include>
可以完美解决,因为 request
和 response
对象被传递给它,JSP ${EL}
语法使用 ${loopIndex}
检索包含的资源中的值也可以。
但是,我不确定是否编写了 <sling:include>
自定义标签来支持所有这些。如果它不起作用,您需要修改它以在与 resource
相同的行上占用另一个属性,以传递 varStatus
值。
<sling:include resource="${tabResource}" loopIndex="${varStatus}" resourceType=... />
我对 jsp 没有太多经验,所以这看起来像是一个愚蠢的问题,但是如何在 forEach 循环中输出 varStatus
的值?
这是循环:
<ul class="local-navigation">
<c:forEach var="tabResource" items="${viewModel.navTabResources}" varStatus="myIndex">
<sling:include resource="${ tabResource }" resourceType="navigation/tab/render" />
</c:forEach>
</ul>
在包含的文件中,我这样调用 varStatus="myIndex":
<a href="#" data-target=".navList-${myIndex.count}" <c:choose>
但是当我构建时,呈现的 html 没有显示来自 varStatus 变量的值(像这样):
<a href="#" data-visibility-target=".navList-">...</a>
我在这里做错了什么?或者更好的问题:如何将 varStatus 变量传递到包含文件的范围?
就在您的 <include>
之前,将您的 varStatus
值设置到 request
范围内,以使其对包含的 JSP 资源可用。
<c:forEach var="tabResource" items="${viewModel.navTabResources}" varStatus="myIndex">
<c:set var="loopIndex" value="${myIndex}" scope="request" />
<sling:include resource="${tabResource}" resourceType="navigation/tab/render" />
</c:forEach>
现在用 <jsp:include>
可以完美解决,因为 request
和 response
对象被传递给它,JSP ${EL}
语法使用 ${loopIndex}
检索包含的资源中的值也可以。
但是,我不确定是否编写了 <sling:include>
自定义标签来支持所有这些。如果它不起作用,您需要修改它以在与 resource
相同的行上占用另一个属性,以传递 varStatus
值。
<sling:include resource="${tabResource}" loopIndex="${varStatus}" resourceType=... />