FreeBoardMapper.java
@Select("select memberId "
+ "from Member "
+ "where memberNo = "
+ "(select memberNo "
+ "from FreeBoard "
+ "where freeBoardNo = #{ freeBoardNo })")
String getMemberId(@Param("freeBoardNo") int freeBoardNo); // memberNo로 memberId 찾아오기
FreeBoardService.java
String getMemberId(int freeBoardNo);
FreeBoardServiceImpl.java
@Override
public String getMemberId(int freeBoardNo) {
String memberId = freeboardMapper.getMemberId(freeBoardNo);
return memberId;
}
FreeBoardController.java 에서 게시물 조회 시
@GetMapping(path= {"/freeboardlist"})
public String list(@RequestParam(defaultValue = "1") int pageNo, Model model) {
int pageSize = 10;
int pagerSize = 5;
String linkUrl = "freeboardlist";
int dataCount = freeBoardService.getFreeBoardCount();
int from = (pageNo -1) * pageSize;
List<FreeBoardDto> freeBoardList = freeBoardService.listFreeBoardByPage(from, pageSize);
for (FreeBoardDto freeboard : freeBoardList ) { // 작성자 조회 // 기존 코드에 추가한 부분
String memberId = freeBoardService.getMemberId(freeboard.getFreeBoardNo());
freeboard.setMemberId(memberId);
}
ThePager pager = new ThePager(dataCount, pageNo, pageSize, pagerSize, linkUrl);
model.addAttribute("freeBoardList", freeBoardList);
model.addAttribute("pager", pager);
model.addAttribute("pageNo", pageNo);
return "freeboard/freeboardlist";
}
FreeBoardController.java 에서 게시물 작성 시
@PostMapping(path= {"/freeboardwrite"})
public String writeFreeBoard(FreeBoardDto freeboard, MultipartFile attach,
HttpServletRequest req) throws Exception {
// 파일업로드 처리
String uploadAttachFile = req.getServletContext().getRealPath("/resources/upload/");
ArrayList<FreeBoardAttachDto> freeBoardAttachList = handleUploadFile(attach, uploadAttachFile);
freeboard.setFreeBoardAttachList(freeBoardAttachList);
HttpSession session = req.getSession(); // 작성자로 글 등록하기 // 기존 코드에 추가한 부분
int memberNo = ( (MemberDto) session.getAttribute("loginuser")).getMemberNo();
freeboard.setMemberNo(memberNo);
freeBoardService.writeFreeBoard(freeboard);
return String.format("redirect:freeboardlist?memberNo=%d", freeboard.getMemberNo());
}
FreeBoardController.java 에서 게시물 상세 조회 시
@GetMapping(path = {"/freeboarddetail"})
public String detail(@RequestParam(defaultValue = "-1") int freeBoardNo,
@RequestParam(defaultValue = "-1") int pageNo,
Model model) {
if(freeBoardNo == -1 || pageNo == -1) { // 주소창에 detail로 바로 접근하지 못하게 함
return "redirect:freeboardlist";
}
FreeBoardDto freeboard = freeBoardService.findFreeBoardByFreeBoardNo(freeBoardNo);
if(freeboard == null) { // 조회된 글이 없을때 리스트로
return "redirect:freeboardlist";
}
String memberId = freeBoardService.getMemberId(freeboard.getFreeBoardNo()); // 기존 코드에 추가한 부분
freeboard.setMemberId(memberId);
model.addAttribute("freeBoard", freeboard);
model.addAttribute("pageNo", pageNo);
freeBoardService.updateFreeBoardviewCount(freeBoardNo); // 조회수 증가
return "freeboard/freeboarddetail";
}
'프로젝트' 카테고리의 다른 글
영화 예매 사이트 (MoVieCinema) - 댓글 조회 및 페이징 (AJAX) (0) | 2024.04.13 |
---|---|
가전제품 대여 웹사이트 (세숫대여) - 대댓글 작성 (0) | 2023.10.10 |
가전제품 대여 웹사이트 (세숫대여) - 게시판 댓글 수정/삭제 기능 구현 (0) | 2023.09.29 |
가전제품 대여 웹사이트 (세숫대여) - 게시판 댓글 조회 기능 구현 (0) | 2023.09.29 |
가전제품 대여 웹사이트 (세숫대여) - 게시판 댓글 작성 기능 구현 (0) | 2023.09.29 |