일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- spring boot
- thymeleaf
- chart.js
- resutful api
- 여러 종류의 사용자 정의 함수
- 자바빈
- jsp
- chart.js 라이브러리
- 데이터 시각화
- IndexedDB
- 실시간 상태값 저장
- 초보 개발자
- 상태값 저장 유지
- MYSQL
- 자바
- 자바스크립트
- html
- css
- tomcat
- java
- github
- @requstbody
- 게시판
- ui인터페이스
- vscode
- Eclipse
- JavaScript
- git
- open in browser
- vsc
Archives
- Today
- Total
수월한 IT
16장 상세보기및 파일 다운로드 본문
728x90
작업 페이지 : /WebContent/board/view.jsp
select.jsp 페이지에서 게시물의 세부적인 내용을 보기 위해 목록의 한 행을 클릭하면 보게 되는 페이지 입니다.
<%for(BoardVo v : list){ %> <div class='row' onclick="board.view(<%=v.getSerial()%>)"> ... </div> <%} %>
물론 자바스크립트 함수 board.view()에 의해 index.jsp?inc=./board/view.jsp 가 <form/>태그의 actioin값으로 전달됩니다. 이 때 view.jsp 페이지에 넘어가는 주요 정보는 nowPage, findStr, serial 입니다.
세부 내용은 자바스크립 코드를 확인해 보시기 바랍니다.
첨부파일이 있는 게시물의 상세보기 하면의 예입니다.

[전체 코드]
<%@page import="bean.Page"%> <%@page import="bean.BoardController"%> <%@page import="bean.AttVo"%> <%@page import="bean.BoardVo"%> <%@page import="java.util.List"%> <%@page import="bean.BoardDao"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% BoardController ctrl = new BoardController(request, response); ctrl.view(); BoardVo vo = (BoardVo)request.getAttribute("vo"); List<AttVo> attList = vo.getAttList(); Page p = (Page)request.getAttribute("page"); %> <div id='board' class='view'> <h2 class='title'>자유 게시물 상세보기</h2> <label>작성자 | </label> <span'><%=vo.getWorker()%></span> <span> [조회수 : <%=vo.getHit()%> ]</span> <br/> <label>제  목 | </label> <span class='subject'><%=vo.getSubject()%></span> <br/> <div class='content'><%=vo.getContent()%></div><br/> <div id='btnZone'> <input type='button' value='댓글' id='btnRepl' /> <input type='button' value='수정' id='btnModify' /> <input type='button' value='삭제' id='btnDelete' /> <input type='button' value='목록' id='btnSelect'/> </div> <form name='frmBrd' id='frmInput' method='post'> <input type='hidden' name='password' > <input type='hidden' name='findStr' size='30' value="<%=p.getFindStr()%>"> <input type='hidden' name='nowPage' value="<%=p.getNowPage()%>"> <input type='hidden' name='serial' value="<%=vo.getSerial()%>"> </form> <% if(attList.size()>0) { %> <fieldset id='attachList'> <legend>첨부파일 목록</legend> <% for(AttVo att : attList) { %> <a href="./upload/<%=att.getAttFile() %>" download="<%=att.getOriAttFile() %>" /> <img src="./upload/<%=att.getAttFile() %>" class='img'/></a></li> <%} %> </fieldset> <%} %> </div>
[코드 설명]
- 13~14행 : 요청 정보(request)를 파라미터로 사용하여 BoardController를 생성한 후 상세보기를 처리하는 view() 메서드 호출.
- 15~17행 : view()메서드가 호출되면 BoardVo(게시물 내용), attList(첨부파일 정보) , Page(페이징)와 관련된 정보를 처리하여 request영역에 attribute(속성)형태로 담겨져서 request.getAttribute()로 가져와 사용할 수 있음.
- 36~42행 : 화면을 이동할 때 전달해줄 기준 정보 저장.
- 44~55행 : 첨부파일이 존재하는 경우 <a/>를 사용하여 화면에 표시해 주는데 서버에 실제로 저장된 파일은 att.getAttFile() 메서드에 의해 처리되고, 사용자가 선택한 파일명은 att.getOriAttFile()메서드에 의해서 처리됨.
- 50행 : <a/> 태그의 download 속성은 사용자가 표시된 항목을 클릭하면 자동으로 다운로드해 주는 역활을 함.
- 57~62행 : 화면 이동과 관련된 버튼들이며 36행의 <form/> 태그 정보를 submit 하도록 조치됨.
이상으로 상세보기 및 파일 다운로드 포스팅을 마치도록 하겠습니다.
[관련 동영상-게시물 상세보기(묵음)]
'프로젝트 > 자바 빈과 JSP만을 사용한 게시판 만들기' 카테고리의 다른 글
18장 삭제 처리 (0) | 2020.05.10 |
---|---|
17장 수정 처리 (1) | 2020.05.10 |
15장 게시물 입력폼 만들기 (1) | 2020.05.10 |
14장 검색및 페이징 (0) | 2020.05.10 |
13장 Dao와 Vo (0) | 2020.05.10 |