我需要生成一些像这样的HTML:
<div class='element'>element</div>
<div class='element'>element</div>
<div class='element'>element</div>
<div class='more-elements'>
<div class='element'>element</div>
<div class='element'>element</div>
<div class='element'>element</div>
</div>
基本上,第三个之后的元素必须在另一个div标签内。我试过这段代码:
<c:set var="hasMore" value="0"/>
<c:forEach items="${elements}" var="element" varStatus="loop">
<c:if test="${loop.index eq 3}">
<c:set var="hasMore" value="1"/>
<div class='more-elements'>
</c:if>
<div class='element'>${element.name}</div>
</c:forEach>
<c:if test="{hasMore eq 1}">
</div>
</c:if>
但是当它尝试渲染页面时,我有一个No end tag found.
例外。
这样做的正确方法是什么?
感谢。
答案 0 :(得分:0)
然后试试这段代码:
<c:set var="hasMore" value="0"/>
<c:forEach items="${elements}" var="element" varStatus="loop">
<c:if test="${loop.index lt 3}">
<div class='element'>${element.name}</div>
</c:if>
<c:if test="${loop.index ge 3}">
<div class='element'>
<c:set var="hasMore" value="1"/>
<div class='more-elements'>${element.name}
</div>
</div>
</c:if>
</c:forEach>
答案 1 :(得分:0)
解决方案是使用<c:out/>
标记:
<c:set var="hasMore" value="0"/>
<c:forEach items="${elements}" var="element" varStatus="loop">
<c:if test="${loop.index eq 3}">
<c:set var="hasMore" value="1"/>
<c:out value="<div class='more-elements'>" escapeXml="false"/>
</c:if>
<div class='element'>${element.name}</div>
</c:forEach>
<c:if test="{hasMore eq 1}">
<c:out value="</div>" escapeXml="false" />
</c:if>