2024. 2. 29. 17:42ㆍ카테고리 없음
BoardController>search 추가(전체)
// 2024.02.20 페이징 추가하기/ 2024.02.29 서치
@GetMapping("/board")
public String board(
@RequestParam(value="pageNo", required=false) String no,
@RequestParam(value="search", required=false) String search,
Model model) {
//System.out.println(search);
//pageNo가 오지 않는다면
int currentPageNo = 1;
if(util.str2Int(no) > 0 ) {//여기 수정해주세요.
currentPageNo = Integer.parseInt(no);
}
//전체 글 수 totalRecordCount
int totalRecordCount = boardService.totalRecordCount(search);
//pagination
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(currentPageNo); //현재 페이지 번호
paginationInfo.setRecordCountPerPage(10); //한 페이지에 게시되는 게시물 건 수
paginationInfo.setPageSize(10); // 페이징 리스트의 사이즈
paginationInfo.setTotalRecordCount(totalRecordCount);//전체 게시물 건 수
SearchDTO searchDTO = new SearchDTO();
searchDTO.setPageNo(paginationInfo.getFirstRecordIndex());
searchDTO.setSearch(search);
List<BoardDTO> list = boardService.boardList(searchDTO);
model.addAttribute("list", list);
//페이징 관련 정보가 있는 PaginationInfo 객체를 모델에 반드시 넣어준다.
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("pageNo", currentPageNo);
model.addAttribute("search", search);
return "board";
}
@RequestParam >search 추가
// 2024.02.20 페이징 추가하기/ 2024.02.29 서치
@GetMapping("/board")
public String board(
@RequestParam(value="pageNo", required=false) String no,
@RequestParam(value="search", required=false) String search,
Model model) {
search 추가
//전체 글 수 totalRecordCount
int totalRecordCount = boardService.totalRecordCount(search);
SearchDTO 만들기> 추가
SearchDTO searchDTO = new SearchDTO();
searchDTO.setPageNo(paginationInfo.getFirstRecordIndex());
searchDTO.setSearch(search);
List<BoardDTO> list = boardService.boardList(searchDTO);
model.addAttribute("list", list);
//페이징 관련 정보가 있는 PaginationInfo 객체를 모델에 반드시 넣어준다.
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("pageNo", currentPageNo);
model.addAttribute("search", search);
board.jsp 서치 넣어주기
//전자정부 페이징 이동하는 스크립트
function linkPage(pageNo){
location.href = "./board?search=${search}&pageNo="+pageNo;
}
BoardController > model 넣어줘야한다.
List<BoardDTO> list = boardService.boardList(searchDTO);
model.addAttribute("list", list);
//페이징 관련 정보가 있는 PaginationInfo 객체를 모델에 반드시 넣어준다.
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("pageNo", currentPageNo);
model.addAttribute("search", search);
param을 넣어줘면 컨트롤러에서 model을 안써도된다.
function linkPage(pageNo){
location.href = "./board?search=${param.search}&pageNo="+pageNo;
admin/관리자 페이지 만들어주기
AdminController> 경로 설정을 admin>index로 해줘야한다.
package org.mask.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
//administrator = admin
//
@Controller
public class AdminController {
@GetMapping("/admin/index")
public String index() {
return "/admin/index";
}
}
https://startbootstrap.com/theme/sb-admin-2
어드민에 사용할 부트스트랩
views>admin>index 만들어서 사용
부트스트랩 경로
jsp 파일 만들때 css, js 파일 경로 설정을 잘 해줘야 깨지지 않고 된다.
앞에 /resources/admin/ 넣어서 만들어줬다.
<!-- Custom fonts for this template-->
<link href="/resources/admin/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<!-- Custom styles for this template-->
<link href="/resources/admin/css/sb-admin-2.min.css" rel="stylesheet">
<!-- Bootstrap core JavaScript-->
<script src="/resources/admin/vendor/jquery/jquery.min.js"></script>
<script src="/resources/admin/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Core plugin JavaScript-->
<script src="/resources/admin/vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Custom scripts for all pages-->
<script src="/resources/admin/js/sb-admin-2.min.js"></script>
AdminController
package org.mask.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
//administrator = admin
//
@Controller
@RequestMapping("/admin")
public class AdminController {
@GetMapping("/")
public String index() {
return "admin/index";
}
@GetMapping("/index")
public String index2() {
return "admin/index";
}
@GetMapping("/login")
public String login() {
return "admin/login";
}
@GetMapping("/join")
public String join() {
return "admin/join";
}
}
Views >admin> jsp 만들어주기
admin/index.jsp
<!-- Nav Item - Dashboard --> 아래 경로 변경
<!-- Nav Item - Dashboard -->
<li class="nav-item">
<a class="nav-link" href="./index">
<i class="fas fa-fw fa-tachometer-alt"></i>
<span>Dashboard</span></a>
</li>
<!-- Nav Item - Pages Collapse Menu --> >게시판 으로 사용
<!-- Nav Item - Pages Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo"
aria-expanded="true" aria-controls="collapseTwo">
<i class="fas fa-fw fa-cog"></i>
<span>게시판</span>
</a>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">게시판 관리: </h6>
<a class="collapse-item" href="buttons.html">게시글 관리</a>
<a class="collapse-item" href="cards.html">댓글 관리</a>
</div>
</div>
</li>
<!-- Nav Item - Utilities Collapse Menu --> >회원관리로 사용
<!-- Nav Item - Utilities Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities"
aria-expanded="true" aria-controls="collapseUtilities">
<i class="fas fa-fw fa-wrench"></i>
<span>회원관리</span>
</a>
<div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">회원관리:</h6>
<a class="collapse-item" href="utilities-color.html">회원목록</a>
<a class="collapse-item" href="utilities-border.html">비밀번호초기화</a>
<a class="collapse-item" href="utilities-animation.html">등급</a>
<a class="collapse-item" href="utilities-other.html">차단</a>
</div>
</div>
</li>
<!-- Nav Item - Pages Collapse Menu -->
공지사항으로 사용
<!-- Nav Item - Pages Collapse Menu -->
<li class="nav-item active">
<a class="nav-link" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true"
aria-controls="collapsePages">
<i class="fas fa-fw fa-folder"></i>
<span>공지사항</span>
</a>
<div id="collapsePages" class="collapse aria-labelledby="headingPages"
data-parent="#accordionSidebar">
<div class="bg-white py-2 collapse-inner rounded">
<h6 class="collapse-header">Login Screens:</h6>
<a class="collapse-item" href="login.html">Login</a>
<a class="collapse-item" href="register.html">Register</a>
<a class="collapse-item" href="forgot-password.html">Forgot Password</a>
<div class="collapse-divider"></div>
<h6 class="collapse-header">Other Pages:</h6>
<a class="collapse-item" href="404.html">404 Page</a>
<a class="collapse-item active" href="blank.html">Blank Page</a>
</div>
</div>
</li>
ul 빼서 메뉴를 만들면공통된메뉴를 만들 수 있다.
할것
메뉴jsp 따로 빼기,
탑 따로 빼기,
풋터 따로 빼기
게시글 관리에 모든 글 뜨게 해주세요.
회원관리에 모든 회원 뜨게 해주세요
공지사항에 공지 다 뜨게 해주세요