Loop Tag

In this article:

Introduction

Probably everyone faced with a situation where same content should displayed several times. Of course this problem can be solve with well-known standard JSP tag forEach, but it is not enough if count cycle of content changed very often. That is why ImCMS provide own cycle tag that called loop. loop tag works like the forEach tag, but the main feature of it is visual editor that provide agile configuration of content`s count, etc.

Use in template

For configure loop tag in template just look at the code below.

<imcms:loop no="1" pre="<div>" post="</div>" label="Loop tag example">
    <imcms:loopentry>
        <imcms:loopitem>
            ...some content that will be repeated
        </imcms:loopitem>
    </imcms:loopentry>
</imcms:loop>

Available list of tag attributes:

Attribute Type Description
no Integer Identifier for current loop
pre String Text or html tag that would be added before loop tag
post String Text or html tag that would be added after loop tag
label String Label that is used to describe loop tag

Example:

<%@taglib prefix="imcms" uri="imcms" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Template</title>
    <meta charset="utf-8"/>
</head>
<body>
    <imcms:loop no="1" pre="<div>" post="</div>" label="Loop tag example">
        <ul><imcms:loopentry>
            <li><imcms:loopitem>
                <c:set var="loopEntryRef" value="${loopitem.loopEntryRef}"/>
                <c:out value="Entry no: ${loopEntryRef.entryNo}"/>
                <c:out value="Loop no: ${loopEntryRef.loopNo}"/>
                <div class="figure">
                    <imcms:image no="3" document="${document.id}" style="max-width:100px;"/>
                    <div class="description">
                        <imcms:text no="3" document="${document.id}"/>
                    </div>
                </div>
            </imcms:loopitem></li>
        </imcms:loopentry></ul>
    </imcms:loop>
</body>
</html>