리스트에서는 첨부 파일이 있는지 여부를 적절한 아이콘으로 보여준다.
리스트에서 다운로드 받게끔 하는 경우도 있지만 본 예제에서는 첨부 개수를 보여주어 첨부 파일 존재 여부만 표시 했다.
먼저, SQL에서 다음과 같이 subquery를 이용하여 첨부 파일 개수를 세어준다.
해당 게시물의 글번호(TB.BRDNO)에 맞는 첨부 파일의 게시물 번호(BRDNO)를 맞는 개수를 세는 것이다.
<select id="selectBoard4List" resultType="gu.board4.boardVO" parameterType="gu.common.SearchVO">
SELECT BRDNO, BRDTITLE, BRDWRITER, DATE_FORMAT(BRDDATE,'%Y-%m-%d') BRDDATE, BRDHIT
, (SELECT COUNT(*) FROM TBL_BOARDFILE WHERE BRDNO=TB.BRDNO) FILECNT
FROM TBL_BOARD TB
<include refid="includeBoard"/>
ORDER BY BRDNO DESC
LIMIT ${rowStart-1}, 10
</select>
baord4.xml
subquery의 필드명을 filecnt로 지정하고 boardVO에 추가해 준다.
public class boardVO {
private String brdno, brdtitle, brdwriter, brdmemo, brddate, brdhit, brddeleteflag
, filecnt;
~~ 생략 ~~
public String getFilecnt() {
return filecnt;
}
public void setFilecnt(String filecnt) {
this.filecnt = filecnt;
}
boardVO.java
마지막으로 jsp 파일에서 첨부 파일 개수(filecnt)를 보여주는 열을 다음과 추가하고 실행하여 결과를 확인하면 된다.
<thead>
<tr>
<th>번호</th>
<th>제목</th>
<th>등록자</th>
<th>등록일</th>
<th>조회수</th>
<th>첨부</th>
</tr>
</thead>
<tbody>
<c:forEach var="listview" items="${listview}" varStatus="status">
<c:url var="link" value="board4Read">
<c:param name="brdno" value="${listview.brdno}" />
</c:url>
<tr>
<td><c:out value="${searchVO.totRow-((searchVO.page-1)*searchVO.displayRowCount + status.index)}"/></td>
<td><a href="${link}"><c:out value="${listview.getShortTitle(35)}"/></a></td>
<td><c:out value="${listview.brdwriter}"/></td>
<td><c:out value="${listview.brddate}"/></td>
<td><c:out value="${listview.brdhit}"/></td>
<td><c:out value="${listview.filecnt}"/></td>
</tr>
</c:forEach>
</tbody>
boardList.jsp
'Java > 게시판 4:자료실' 카테고리의 다른 글
1. 자료실 - 준비 & 시작 (1) | 2016.04.02 |
---|---|
2. 자료실 - 글쓰기 (0) | 2016.03.28 |
3. 자료실 - 글 수정 (3) | 2016.03.28 |
5. 자료실 - 글 읽기 / 삭제 (0) | 2016.03.26 |