list.jsp를 태그 파일 사용하여 개선하라.
일종의 API를 만드는 것으로 사용자가 무척 쉽게 사용할 수 있도록 설계를 해야 합니다.
참조 : 프레임워크의 인터페이스(API)
<ajn:page>
<ajn:table>
<ajn:thead>
<ajn:th title="순번" />
<ajn:th title="책" />
<ajn:th title="신청자" />
<ajn:thead>
<ajn:tbody>
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
</ajn:tbody>
</ajn:table>
</ajn:page>
<ajn:table>
<ajn:thead>
<ajn:th title="순번" />
<ajn:th title="책" />
<ajn:th title="신청자" />
<ajn:thead>
<ajn:tbody>
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
<ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
</ajn:tbody>
</ajn:table>
</ajn:page>
태그 파일 사용해서 코드 줄여 보겠다고 만든 원본이 위와 같았습니다. 태그가..page, table, thead, th, tbody, bookOrderColumn 무려 6개.. 기능이 엄청나게 많아서 어쩔 수 없이 복잡한 인터페이스라면 모를까... 기껏 해야 테이블하나 보여줄 뿐인데 말이죠.
<ajn:page title="구매 대행 신청 도서 목록">
<ajn:table is="list" of="order">
<ajn:column property="${order.num}" title="순번" />
<ajn:column property="${order.bookName}" linkProperty="${order.link}" title="책이름" />
<ajn:column property="${order.owners}" title="신청자" />
</ajn:table>
</ajn:page>
<ajn:table is="list" of="order">
<ajn:column property="${order.num}" title="순번" />
<ajn:column property="${order.bookName}" linkProperty="${order.link}" title="책이름" />
<ajn:column property="${order.owners}" title="신청자" />
</ajn:table>
</ajn:page>
지금은 이렇게 바꼈습니다. 태그는 page, table, column 이렇게 세개로 줄었습니다. 대신 태그 파일들의 내부는 이전보다 복잡해 졌지만 그건 태그의 사용자가 고려할 사항이 아니죠.
ps : EL태그 안에 EL태그가 먹힌다면(ex. ${order.${property}}) 개선한 코드에서 색칠된 부분을 뺄 수 있습니다.