ajn 태그 파일 table과 column
화면에서는 이렇게 사용할 수 있습니다.
<ajn:column title="순번" property="${order.num}" />
<ajn:column title="책" property="${order.bookName}" link="${order.link}"/>
<ajn:column title="신청자" property="${order.owners}" />
</ajn:table>
table 태그의 내용은 다음과 같습니다.
[#M_ more.. | less.. |
<table border="1">
<c:set var="current" value="0" scope="session" />
<c:if test="${current == 0}">
<tr>
<jsp:doBody />
</tr>
<c:remove var="current"/>
</c:if>
<c:forEach items="${orders}" var="item">
<c:set var="order" value="${item}" scope="session" />
<tr>
<jsp:doBody />
</tr>
</c:forEach>
</table>
_M#]column 태그의 내용은 다음과 같습니다.
[#M_ more.. | less.. |
<%@ attribute name="property" required="true" %>
<%@ attribute name="link" required="false" %>
<%@ attribute name="title" required="true" %>
<c:choose>
<c:when test="${current == 0}">
<th>${title}</th>
</c:when>
<c:when test="${current == null}">
<c:choose>
<c:when test="${link == null}">
<td>${property}</td>
</c:when>
<c:when test="${link != null}">
<td><a href="${link}">${property}</a></td>
</c:when>
</c:choose>
</c:when>
</c:choose>
_M#]
유용하지 않은 이유는..
1. 저 태그를 사용하는 콜렉션의 이름은 무조건 orders 여야 합니다. 아니면 테이블 태그파일에서 리스트의 이름으로 빨간 색 부분을 수정해 주시면 됩니다.
2. 콜렉션에 담겨이는 각각의 객체에 있는 속성들은 꼭 앞에 order를 붙여줘야 합니다.
이렇게 된 이유는..
1. EL 안에 EL이 먹지 않습니다. ${order.${property}} 이런 건 안되더군요.
2. 머리가 나빠서..;; 아마 다른 방법이 있겠죠. displayTag 처럼 잘 돌아가는게 있으니까요.