在html中输出var Status的值

时间:2015-04-16 01:17:29

标签: jsp foreach

我对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变量传递给包含文件的范围?

1 个答案:

答案 0 :(得分:1)

<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=... />