본문 바로가기
JSP

[JSP ] 게시판 검색 기능 구현

by 빵으니 2020. 5. 11.

jsp 소스코드

<%@page import="com.bigdata.dto.BoardDto"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.bigdata.dao.BoardDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	
<%
request.setCharacterEncoding("UTF-8");

//페이지 번호
int pageNum = 0;
if(request.getParameter("page") == null){
	pageNum = 1;
}else{
	pageNum = Integer.parseInt(request.getParameter("page"));
}
//한 페이지에 나타낼 리스트 변수 선언
int pageList = 4;

//검색어
String keyWord = request.getParameter("keyWord");
String searchWord = request.getParameter("searchWord");

//글 목록 전체 가져오기
BoardDao dao = BoardDao.getInstance(); // Dao 정보 가져오기
ArrayList<BoardDto> boards = dao.getBoardSearch(pageNum, pageList, keyWord, searchWord);

//검색 전체  list count
int count = dao.getCount(keyWord, searchWord);

//page count
int pageCount = (int)Math.ceil((double)count / pageList); //ceil은 올림함수

%>	
	
<div class="content">
	<table width="800px" align="center">
	<b>Title Search</b> : 
	<form action="/bigdata/board/search.jsp" method="get">
	<select name="keyword">
		<option value="Title">제목(Title)</option>
		<option value="Content">내용(Content)</option>
		<option value="Name">작성자(Name)</option>		
		</select>
	<input type="text" name="searchWord">
	<input type="submit" value="Search">
	</form>
		<tr>
			<th width="10%">번호</th>
			<th width="50%">제목</th>
			<th>작성자</th>
			<th>작성일</th>
			<th>조회</th>
		</tr>
		<%
		if(boards.size() > 0){
			String viewPath = "";
			for(BoardDto board : boards){
				viewPath = request.getContextPath()+"/board/list.jsp?idx="+board.getIdx(); //getContextPath 가 bigdata
				String space = "";
				int spaceCount = board.getIndent() * 2;
				for(int i=0;i<=spaceCount;i++){
					space += "&nbsp;";
				}
		%>
		<tr>
			<td><%=board.getIdx() %></td>
			<td><a href="<%=viewPath %>"><%=board.getTitle() %></a></td>
			<td><%=board.getName() %></td>
			<td><%=board.getRegdate() %></td>
			<td><%=board.getHit() %></td>
		</tr>
		<%
			}
		}else {
			out.println("<tr><td colspan='6'>게시글이 없습니다.</td></tr>");
		}
		
		%>
				
		<tr>
			<td colspan="5">
				<%for(int i=1;i<=pageCount;i++) {
					String path = request.getContextPath()+"/index0.jsp";
					path += " ?page= "+i+" &keyWord= " +keyWord+" &searchWord "+searchWord;
					%>
					<%if(i == pageNum){ %>
						<strong>[<%=i %>]</strong>
					<%}else{ %>
						<a href="<%=path%>">[<%=i %>]</a>
					<%} %>
				<%} %>
			</td>
		</tr>
		
	</table>
	<br> <input type="button" id="newBtn" value="글쓰기" onclick="location.href='/bigdata/board/write.jsp'">
</div>

DAO 소스코드

**쿼리문 like~만 잘 활용하면 검색기능을  가진 메소드 만들 수 있다

쿼리문에서 공백 유의!

 

'JSP' 카테고리의 다른 글

[JSP] model1, model 2(MVC패턴) 개발  (0) 2020.05.11
JSP 정리!!  (0) 2020.05.01

댓글