<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<link href="/resources/css/menubar-style.css" rel="stylesheet">
<meta charset="UTF-8">
<title>자유게시판</title>
</head>
<body>
<header>
<h1 align="center">Welcome Our WebSite!</h1>
<!-- ${empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser eq null}">
<div class="login-area">
<form action="/member/login.kh" method="post">
<table align='right'>
<tr>
<td>아이디 :</td>
<td><input type="text" name="memberId"></td>
<td rowspan="2"><input type="submit" value="로그인"></td>
</tr>
<tr>
<td>비밀번호 :</td>
<td><input type="password" name="memberPw"></td>
<td></td>
</tr>
<tr>
<td colspan="3"><a href="/member/joinView.kh">회원가입</a></td>
</tr>
</table>
</form>
</div>
</c:if>
<!-- ${not empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser ne null}">
<div class="login-area">
<table align="right">
<tr>
<td colspan="3" rowspan="2">${loginUser.memberName }님환영합니다</td>
</tr>
<tr>
</tr>
<tr>
<td><a href="/member/myPage.kh">정보수정</a>
<td><a href="/member/logout.kh">로그아웃</a></td>
</tr>
</table>
</div>
</c:if>
<div class="nav-area">
<div class="menu" onclick="location.href='/home.kh';">Home</div>
<div class="menu" onclick="showNoticeList();">공지사항</div>
<div class="menu" onclick="location.href='/board/list.kh';">자유게시판</div>
<div class="menu" onclick="">사진게시판</div>
</div>
<script>
function showNoticeList() {
}
</script>
</header>
<h1 align="center">게시글 목록</h1>
<br>
<br>
<table align="center" border="1">
<tr>
<th>번호</th>
<th>제목</th>
<th>작성자</th>
<th>날짜</th>
<th>조회수</th>
<th>첨부파일</th>
</tr>
<c:forEach items="${bList }" var="board" varStatus="i">
<tr>
<td>${i.count }</td>
<c:if test="${searchValue eq null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }">${board.boardTitle }</td>
</c:if>
<c:if test="${searchValue ne null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }&searchCondition=${searchCondition }&searchValue=${searchValue}">${board.boardTitle }</td>
</c:if>
<td>${board.boardWirter }</td>
<td>${board.bCreateDate }</td>
<td>${board.boardCount }</td>
<c:if test="${!empty board.boardFile }">
<td>O</td>
</c:if>
<c:if test="${empty board.boardFile }">
<td>X</td>
</c:if>
</tr>
</c:forEach>
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a href="/board/list.kh?page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
<c:if test="${pageNow ne p}">
<a href="/board/list.kh?page=${p }">${p }</a>
</c:if>
</c:forEach> <!-- endNavi가 maxPage와 같지 않을때만 출력 --> <c:if
test="${endNavi < maxPage }">
<a href="/board/list.kh?page=${endNavi+1 }">다음</a>
</c:if>
</td>
</tr>
<!-- 검색창 구성-->
<tr>
<td colspan="4" align="center">
<form action="/board/search.kh" method="get">
<select name="searchCondition">
<option value="all">전체</option>
<option value="writer">작성자</option>
<option value="title">제목</option>
<option value="contents">내용</option>
</select>
<input type="text" size="25" name="searchValue" required="required"> <input
type="submit" value="검색">
</form>
</td>
<td colspan="2" align="center">
<button onclick="location.href='/board/writeView.kh';">글쓰기</button>
</td>
</tr>
<!-- 검색창 종료-->
</table>
</body>
</html>
/**
* 게시물 검색
* @param mv
* @param searchCondition
* @param searchValue
* @return
*/
@RequestMapping (value="/board/search.kh", method = RequestMethod.GET)
public ModelAndView boardSearchList(ModelAndView mv,
@RequestParam("searchCondition") String searchCondition,
@RequestParam(value="page", required=false) Integer page, //페이징을 위한 매개변수
@RequestParam("searchValue") String searchValue,
HttpSession session) {
try {
session.removeAttribute("pageNow");
/////////////////////////////////페이징시작//////////////////////////////
int currentPage = (page != null) ? page: 1;
int boardLimit = 10; //한 화면에 출력할 게시물 수
List<Board> bList = bService.printAllByValue(searchCondition, searchValue, currentPage, boardLimit);
if(!bList.isEmpty()) {
int totalCount = bService.getTotalCount(searchCondition, searchValue);
int naviLimit = 5; //한 화면에 출력할 게시판 페이지 수
int maxPage; //게시판의 총 페이지 수
int startNavi; //한 화면에 출력되는 게시판 페이지의 처음 수
int endNavi;//한 화면에 출력되는 게시판 페이지의 마지막 수
maxPage =(int)((double)totalCount/boardLimit+0.9);
startNavi = ((int)((double)currentPage/naviLimit+0.9)-1)*naviLimit+1;
endNavi=startNavi+naviLimit-1;
//endNavi가 maxNavi보다 커지는 오류방지
if(maxPage<endNavi) {
endNavi = maxPage;
}
mv.addObject("startNavi",startNavi);
mv.addObject("endNavi", endNavi);
mv.addObject("maxPage", maxPage);
////////////////////////////////페이징종료///////////////////////////////////
mv.addObject("bList",bList);
session.setAttribute("pageNow", page);
mv.addObject("searchValue",searchValue);
mv.addObject("searchCondition",searchCondition);
mv.setViewName("board/listView");
}
}catch (Exception e) {
mv.addObject("msg",e.getMessage()).setViewName("/common/errorPage");
}
return mv;
}
@Override
public List<Board> printAllByValue(String searchCondition, String searchValue, int currentPage, int boardLimit) {
List<Board> bList = bStore.selectAllByValue(session,searchCondition, searchValue, currentPage,boardLimit);
return bList;
}
@Override
public List<Board> selectAllByValue(SqlSessionTemplate session, String searchCondition, String searchValue, int currentPage, int boardLimit) {
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("searchCondition", searchCondition);
paramMap.put("serchValue", searchValue);
int offset = (currentPage-1)*boardLimit;
RowBounds rowBounds = new RowBounds(offset, boardLimit);
List<Board> bList = session.selectList("BoardMapper.selectAllByValue",paramMap, rowBounds);
return bList;
}
List<Board> bList = session.selectList("BoardMapper.selectAllByValue",paramMap, rowBounds)
<select id="selectAllByValue" resultMap="boardResultMap">
select * from board_tbl
<where>
<if test="searchCondition.toString() == 'title'">
B_STATUS = 'Y' and BOARD_TITLE like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'writer'">
B_STATUS = 'Y' and BOARD_WIRTER like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'contents'">
B_STATUS = 'Y' and BOARD_CONTENTS like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'all'">
B_STATUS = 'Y' and BOARD_CONTENTS like '%'|| #{serchValue} ||'%' or BOARD_WIRTER like '%'|| #{serchValue} ||'%' or BOARD_TITLE like '%'|| #{serchValue} ||'%'
</if>
</where>
</select>
/**
* 게시물 검색
* @param mv
* @param searchCondition
* @param searchValue
* @return
*/
@RequestMapping (value="/board/search.kh", method = RequestMethod.GET)
public ModelAndView boardSearchList(ModelAndView mv,
@RequestParam("searchCondition") String searchCondition,
@RequestParam(value="page", required=false) Integer page, //페이징을 위한 매개변수
@RequestParam("searchValue") String searchValue,
HttpSession session) {
try {
session.removeAttribute("pageNow");
/////////////////////////////////페이징시작//////////////////////////////
int currentPage = (page != null) ? page: 1;
int boardLimit = 10; //한 화면에 출력할 게시물 수
List<Board> bList = bService.printAllByValue(searchCondition, searchValue, currentPage, boardLimit);
if(!bList.isEmpty()) {
int totalCount = bService.getTotalCount(searchCondition, searchValue);
int naviLimit = 5; //한 화면에 출력할 게시판 페이지 수
int maxPage; //게시판의 총 페이지 수
int startNavi; //한 화면에 출력되는 게시판 페이지의 처음 수
int endNavi;//한 화면에 출력되는 게시판 페이지의 마지막 수
maxPage =(int)((double)totalCount/boardLimit+0.9);
startNavi = ((int)((double)currentPage/naviLimit+0.9)-1)*naviLimit+1;
endNavi=startNavi+naviLimit-1;
//endNavi가 maxNavi보다 커지는 오류방지
if(maxPage<endNavi) {
endNavi = maxPage;
}
mv.addObject("startNavi",startNavi);
mv.addObject("endNavi", endNavi);
mv.addObject("maxPage", maxPage);
////////////////////////////////페이징종료///////////////////////////////////
mv.addObject("bList",bList);
session.setAttribute("pageNow", page);
mv.addObject("searchValue",searchValue);
mv.addObject("searchCondition",searchCondition);
mv.setViewName("board/listView");
}
}catch (Exception e) {
mv.addObject("msg",e.getMessage()).setViewName("/common/errorPage");
}
//쿼리문 select * from board_tbl where b_status = 'Y' and board_title like '%'||#{searchValue}||'%';
return mv;
}
int totalCount = bService.getTotalCount(searchCondition, searchValue);
@Override
public int getTotalCount(String searchCondition, String searchValue) {
int count = bStore.selectTotalCount(session, searchCondition, searchValue);
return count;
}
@Override
public int selectTotalCount(SqlSessionTemplate session, String searchCondition, String searchValue) {
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("searchCondition", searchCondition);
paramMap.put("serchValue", searchValue);
int count = session.selectOne("BoardMapper.selectBoardCount",paramMap);
return count;
}
<!-- 숫자 반환할거니까 resultTypeuploadFile="_int" 기억할것! -->
<select id="selectBoardCount" resultType="_int">
select count(*) from board_tbl
<where>
<if test="searchCondition.toString() == 'title'">
B_STATUS = 'Y' and BOARD_TITLE like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'writer'">
B_STATUS = 'Y' and BOARD_WIRTER like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'contents'">
B_STATUS = 'Y' and BOARD_CONTENTS like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == 'all'">
B_STATUS = 'Y' and BOARD_CONTENTS like '%'|| #{serchValue} ||'%' or BOARD_WIRTER like '%'|| #{serchValue} ||'%' or BOARD_TITLE like '%'|| #{serchValue} ||'%'
</if>
<if test="searchCondition.toString() == ''">
B_STATUS = 'Y'
</if>
</where>
</select>
/**
* 게시물 리스트
* @param mv
* @param page
* @param session
* @return
*/
@RequestMapping(value="/board/list.kh", method =RequestMethod.GET)
public ModelAndView boardList(ModelAndView mv,
@RequestParam(value="page", required=false) Integer page,
HttpSession session) {
//@RequestParam(value="page", required=false)의 값은 page이지만
// required=false 필수값은 아니라는 뜻
session.removeAttribute("pageNow");
int currentPage = (page != null) ? page: 1;
//현재 페이지
//만약 page값이 없으면 기본형 1로 출력할것, 아니면 받아온 page의 값을 준다.
//삼항연상자 사용
int totalCount = bService.getTotalCount("", "");
int boardLimit = 10; //한 화면에 출력할 게시물 수
int naviLimit = 5; //한 화면에 출력할 게시판 페이지 수
int maxPage; //게시판의 총 페이지 수
int startNavi; //한 화면에 출력되는 게시판 페이지의 처음 수
int endNavi;//한 화면에 출력되는 게시판 페이지의 마지막 수
maxPage =(int)((double)totalCount/boardLimit+0.9);
startNavi = ((int)((double)currentPage/naviLimit+0.9)-1)*naviLimit+1;
endNavi=startNavi+naviLimit-1;
//endNavi가 maxNavi보다 커지는 오류방지
if(maxPage<endNavi) {
endNavi = maxPage;
}
List<Board> bList = bService.printAllBoard(currentPage, boardLimit);
if(!bList.isEmpty()) {
mv.addObject("startNavi",startNavi);
mv.addObject("endNavi", endNavi);
mv.addObject("maxPage", maxPage);
mv.addObject("bList", bList);
}
session.setAttribute("pageNow", page);
mv.setViewName("/board/listView");
return mv;
}
int totalCount = bService.getTotalCount("", "");
<if test="searchCondition.toString() == ''"B_STATUS = 'Y'</if>
이 if문을 사용한 쿼리문을 이용하게 되어 정상 출력된다.<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<link href="/resources/css/menubar-style.css" rel="stylesheet">
<meta charset="UTF-8">
<title>자유게시판</title>
</head>
<body>
<header>
<h1 align="center">Welcome Our WebSite!</h1>
<!-- ${empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser eq null}">
<div class="login-area">
<form action="/member/login.kh" method="post">
<table align='right'>
<tr>
<td>아이디 :</td>
<td><input type="text" name="memberId"></td>
<td rowspan="2"><input type="submit" value="로그인"></td>
</tr>
<tr>
<td>비밀번호 :</td>
<td><input type="password" name="memberPw"></td>
<td></td>
</tr>
<tr>
<td colspan="3"><a href="/member/joinView.kh">회원가입</a></td>
</tr>
</table>
</form>
</div>
</c:if>
<!-- ${not empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser ne null}">
<div class="login-area">
<table align="right">
<tr>
<td colspan="3" rowspan="2">${loginUser.memberName }님환영합니다</td>
</tr>
<tr>
</tr>
<tr>
<td><a href="/member/myPage.kh">정보수정</a>
<td><a href="/member/logout.kh">로그아웃</a></td>
</tr>
</table>
</div>
</c:if>
<div class="nav-area">
<div class="menu" onclick="location.href='/home.kh';">Home</div>
<div class="menu" onclick="showNoticeList();">공지사항</div>
<div class="menu" onclick="location.href='/board/list.kh';">자유게시판</div>
<div class="menu" onclick="">사진게시판</div>
</div>
<script>
function showNoticeList() {
}
</script>
</header>
<h1 align="center">게시글 목록</h1>
<br>
<br>
<table align="center" border="1">
<tr>
<th>번호</th>
<th>제목</th>
<th>작성자</th>
<th>날짜</th>
<th>조회수</th>
<th>첨부파일</th>
</tr>
<c:forEach items="${bList }" var="board" varStatus="i">
<tr>
<td>${i.count }</td>
<c:if test="${searchValue eq null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }">${board.boardTitle }</td>
</c:if>
<c:if test="${searchValue ne null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }&searchCondition=${searchCondition }&searchValue=${searchValue}">${board.boardTitle }</td>
</c:if>
<td>${board.boardWirter }</td>
<td>${board.bCreateDate }</td>
<td>${board.boardCount }</td>
<c:if test="${!empty board.boardFile }">
<td>O</td>
</c:if>
<c:if test="${empty board.boardFile }">
<td>X</td>
</c:if>
</tr>
</c:forEach>
<!-- 검색/ 일반 페이징 c:if -->
<!-- 일반 페이징 시작 -->
<c:if test="${searchValue eq null }">
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a href="/board/list.kh?page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
<c:if test="${pageNow ne p}">
<a href="/board/list.kh?page=${p }">${p }</a>
</c:if>
</c:forEach> <!-- endNavi가 maxPage와 같지 않을때만 출력 --> <c:if
test="${endNavi < maxPage }">
<a href="/board/list.kh?page=${endNavi+1 }">다음</a>
</c:if>
</td>
</tr>
</c:if>
<!-- 검색 페이징 시작 -->
<c:if test="${searchValue ne null }">
<input type="hidden" name="searchCondition" value="${searchCondition }">
<input type="hidden" name="searchValue" value="${searchValue}">
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
<c:if test="${pageNow ne p}">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${p }">${p }</a>
</c:if>
</c:forEach> <!-- endNavi가 maxPage와 같지 않을때만 출력 --> <c:if
test="${endNavi < maxPage }">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${endNavi+1 }">다음</a>
</c:if>
</td>
</tr>
</c:if>
<!-- 일반/ 검색용 페이징 종료 -->
<tr>
<td colspan="4" align="center">
<form action="/board/search.kh" method="get">
<select name="searchCondition">
<option value="all">전체</option>
<option value="writer">작성자</option>
<option value="title">제목</option>
<option value="contents">내용</option>
</select> <input type="text" size="25" name="searchValue" required="required"> <input
type="submit" value="검색">
</form>
</td>
<td colspan="2" align="center">
<button onclick="location.href='/board/writeView.kh';">글쓰기</button>
</td>
</tr>
</table>
</body>
</html>
<!-- 검색/ 일반 페이징 c:if -->
<!-- 일반 페이징 시작 -->
<c:if test="${searchValue eq null }">
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a href="/board/list.kh?page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
<c:if test="${pageNow ne p}">
<a href="/board/list.kh?page=${p }">${p }</a>
</c:if>
</c:forEach> <!-- endNavi가 maxPage와 같지 않을때만 출력 --> <c:if
test="${endNavi < maxPage }">
<a href="/board/list.kh?page=${endNavi+1 }">다음</a>
</c:if>
</td>
</tr>
</c:if>
<!-- 검색 페이징 시작 -->
<c:if test="${searchValue ne null }">
<input type="hidden" name="searchCondition" value="${searchCondition }">
<input type="hidden" name="searchValue" value="${searchValue}">
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
<c:if test="${pageNow ne p}">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${p }">${p }</a>
</c:if>
</c:forEach> <!-- endNavi가 maxPage와 같지 않을때만 출력 --> <c:if
test="${endNavi < maxPage }">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${endNavi+1 }">다음</a>
</c:if>
</td>
</tr>
</c:if>
<!-- 일반/ 검색용 페이징 종료 -->
<c:if test="${searchValue eq null }">
를 이용하여 구분해주었다.<a href="/board/search.kh?searchCondition=${searchCondition}&searchValue=${searchValue}&page=${p }">${p }</a>
searchCondition
과 searchValue
를 주면 아까 작성했던 serch.kh 컨트롤러에 의해 페이지값이 계산되어 원하는 페이지가 추력된다.<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${board.boardTitle }</title>
<link href="/resources/css/menubar-style.css" rel="stylesheet">
</head>
<body>
<header>
<h1 align="center">Welcome Our WebSite!</h1>
<!-- ${empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser eq null}">
<div class="login-area">
<form action="/member/login.kh" method="post">
<table align='right'>
<tr>
<td>아이디 :</td>
<td><input type="text" name="memberId"></td>
<td rowspan="2"><input type="submit" value="로그인"></td>
</tr>
<tr>
<td>비밀번호 :</td>
<td><input type="password" name="memberPw"></td>
<td></td>
</tr>
<tr>
<td colspan="3"><a href="/member/joinView.kh">회원가입</a></td>
</tr>
</table>
</form>
</div>
</c:if>
<!-- ${not empty sessionScope.loginUser } -->
<c:if test="${sessionScope.loginUser ne null}">
<div class="login-area">
<table align="right">
<tr>
<td colspan="3" rowspan="2">${loginUser.memberName }님환영합니다</td>
</tr>
<tr>
</tr>
<tr>
<td ><a href="/member/myPage.kh">정보수정</a>
<td ><a href="/member/logout.kh">로그아웃</a></td>
</tr>
</table>
</div>
</c:if>
<div class="nav-area">
<div class="menu" onclick="location.href='/home.kh';">Home</div>
<div class="menu" onclick="showNoticeList();">공지사항</div>
<div class="menu" onclick="location.href='/board/list.kh';">자유게시판</div>
<div class="menu" onclick="">사진게시판</div>
</div>
<script>
function showNoticeList() {
}
</script>
</header>
<table align="center" border="1">
<tr>
<td>제목</td>
<td>${board.boardTitle }</td>
</tr>
<tr>
<td>작성자</td>
<td>${board.boardWirter }</td>
</tr>
<tr>
<td>작성일</td>
<td>${board.bCreateDate }</td>
</tr>
<tr>
<td>내용</td>
<td>
${board.boardContents }
<br>
<c:if test="${board.boardRename ne null}">
<img alt="본문이미지" src="/resources/buploadFiles/${board.boardRename }">
</c:if>
</td>
</tr>
<tr>
<td colspan="2"><input type="button" value="수정" onclick="location.href='/board/modifyView.kh?boardNo=${board.boardNo}';">
<!--검색/일반의 경우 목록주소 -->
<!-- 일반으로 상세 진입시 목록 -->
<c:if test="${empty searchValue }">
<button type="button" onclick="location.href='/board/list.kh?page=${pageNow }';">목록</button>
</c:if>
<!-- 검색 으로 상세 진입시 -->
<c:if test="${searchValue ne null }">
<button type="button" onclick="location.href='/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${pageNow }';">목록</button>
</c:if>
<!-- 목록주소 태그 종료 -->
<button type="button" onclick="remove()">삭제</button>
</td>
</tr>
</table>
</form>
<script>
function remove() {
event.preventDefault(); // 하이퍼링크 이동방지
if(window.confirm("게시물을 삭제하시겠습니까?")){
location.href='/board/remove.kh';
}
}
</script>
</body>
</html>
<!--검색/일반의 경우 목록주소 -->
<!-- 일반으로 상세 진입시 목록 -->
<c:if test="${empty searchValue }">
<button type="button" onclick="location.href='/board/list.kh?page=${pageNow }';">목록</button>
</c:if>
<!-- 검색 으로 상세 진입시 -->
<c:if test="${searchValue ne null }">
<button type="button" onclick="location.href='/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${pageNow }';">목록</button>
</c:if>
<!-- 목록주소 태그 종료 -->
<c:if test="${searchValue ne null }">
<input type="hidden" name="searchCondition" value="${searchCondition }">
<input type="hidden" name="searchValue" value="${searchValue}">
<tr align="center" height="20">
<td colspan="6">
<!-- startNavi가 1일이 아닐때만 출력 --> <c:if
test="${startNavi ne 1 && startNavi > 0}">
<a
href="/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${startNavi-1 }">이전</a>
</c:if> <!-- p는 기준을 삼을 임시변수 startNavi부터 시작해 endNavi까지 출력한다 --> <c:forEach
var="p" begin="${startNavi }" end="${endNavi }">
<c:if test="${pageNow == p }">
<b>${p }</b>
</c:if>
hidden을 이용해 해당 값을 저장해 둔것을 확인할수있다.
<c:if test="${searchValue eq null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }">${board.boardTitle }</td>
</c:if>
<c:if test="${searchValue ne null }">
<td><a href="/board/detail.kh?boardNo=${board.boardNo }&searchCondition=${searchCondition }&searchValue=${searchValue}">${board.boardTitle }</td>
</c:if>
게시물 상세페이지와 연결할 a태그에서도 검색에서 진입했다면 searchCondition, searchValue를 가지고 상세페이지로 이동할수있도록 하였다.