<table border=”1″>
        <tr>
            <th>순번</th>
            <th>책</th>
            <th>신청자</th>
        </tr>
    <c:forEach items=”${list}” var=”item”>
        <tr>
            <td>${item.num}</td>
            <td><a href=”${item.link}”>${item.bookName}</a></td>
            <td>${item.owners}</td>
        </tr>
    </c:forEach>
    </table>

이녀석을 태그 파일을 사용하여 다음과 같은 인터페이스로 표현하려고 합니다.

<ajn:table item=”list>
    <ajn:column title=”순번” property=”num” />
    <ajn:column title=”책” property=”bookName” link=”link” />
    <ajn:column title=”신청자” property=”owners” />
</ajn:table>

하지만 발생한 버그는 잡힐 줄을 모르고 현재는… 태그 파일 만들기 직전인 상태로 아래와 같습니다.

<table border=”1″>
    <c:set var=”count” value=”0″ scope=”session” />
    <c:forEach items=”${list}” var=”item”>
        <c:choose>
        <c:when test=”${count == 0}”>
        <tr>
            <th>순번</th>
            <th>책</th>
            <th>신청자</th>
        </tr>
        <c:remove var=”count” scope=”session”/>
        </c:when>
        <c:when test=”${count == null}”>
        <tr>
            <td>${item.num}</td>
            <td><a href=”${item.link}”>${item.bookName}</a></td>
            <td>${item.owners}</td>
        </tr>
        </c:when>
        </c:choose>
    </c:forEach>
</table>

for:each 문안에 모두 들어가게 하고 분기문을 사용해서 첫번째에는 title을 찍게 하고 나머진 프로퍼티를 찍는데 link가 있는 경우에는 link를 달아주는 간단한 jstl입니다.

문제는..루프를 아이탬의 갯수 만큼 돌기 때문에 첫번째 아이탬을 출력하는 대신 타이틀을 출력하고 두번째, 세번째 아이탬을 출력합니다. 따라서 결과는…

사용자 삽입 이미지이제 버그의 끝이 슬슬 보이기 시작하는데.. 엄청나게 삽질하면서 JSTL 사용에 익숙해져 가고 있는 모습으로 위안을 삼고 있습니다.