본문 바로가기
프로젝트/자바 빈과 JSP만을 사용한 게시판 만들기

16장 상세보기및 파일 다운로드

by IT여행자 2020. 5. 10.
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>제&ensp;&ensp;목 | </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장 수정 처리  (0) 2020.05.10
15장 게시물 입력폼 만들기  (0) 2020.05.10
14장 검색및 페이징  (0) 2020.05.10
13장 Dao와 Vo  (0) 2020.05.10