Light Purple Pointer
게시판 만들기 2 - 페이지 네이션 구현
·
BACKEND/Spring
페이지 네이션은 게시글이 늘어날 경우 한 페이지에 모든 게시글을 출력하면 아래와 같이 스크롤이 길어지게된다. 그래서 한 페이지에 출력가능한 게시글 개수를 제한하여 1페이지 2페이지 등 넘어가도록 작동하는 기능 보통 데이터베이스 쿼리문에서 처리하나 Spring MVC은 페이징 처리를 쉽게 할 수 있도록 지원함 #page per board count , pagination count page.listcnt = 10 page.paginationcnt = 10 게시글 개수와 페이지 개수 BoardController //페이지네이션 추가 @GetMapping("/main") public String main(@RequestParam("info_idx") int info_idx, Model model , @Requ..
게시판 만들기 2 - 게시글 삭제 처리
·
BACKEND/Spring
게시글 삭제하기 boardMapper.xml DELETE FROM board WHERE board_idx = #{board_idx} BoardDAO //게시글 삭제하기 public void deleteContent(int board_idx) { sqlTemplate.delete("board.deleteBoard",board_idx); } BoardService //게시글 삭제하기 public void deleteContent(int board_idx) { boardDAO.deleteContent(board_idx); } BoardController //게시글 삭제 처리 @GetMapping("/delete") public String delete( @RequestParam("info_idx") int i..
게시판 만들기 2 - 게시글 수정 처리
·
BACKEND/Spring
BoardController - 유효성 검사 @PostMapping("/modify_pro") public String modify_pro(@Valid @ModelAttribute("modifyContent") BoardVO modifyContent, BindingResult result) { if(result.hasErrors()) { return "board/modify"; } return "board/modify_success"; } 테스트 내용 미 입력 시 수정 처리를 위해서 boardMapper.xml 추가 UPDATE board SET title = #{title} content = #{content} content_file = #{content_file,jdbcType=VARCHAR} WHE..
게시판 만들기 2 - 이미지 업로드 방법 변경
·
BACKEND/Spring
이클립스 기능 중 clean을 삭제하면 글 작성 시 업로드하는 사진 파일도 초기화되는 현상이 생김 그래서 업로드 방법 수정함 C:\Java\upload 톰캣 서버 모듈 주소 지정 /upload를 주소에 입력하면 아래의 폴더로 이동 해당 폴더로 이미지가 올라갈거임 서버가 동적으로 계속 새로고침하면서 등록한 이미지를 가져올 수 있게끔 그리고 추가한 모듈을 등록을 해줘야 함 위의 프로퍼티는 boardService에서 가져온다. 저번에 사용했어서 이미 가져와있음 테스트하기 글 작성하고 이미지 업로드를 하면 지정한 경로의 폴더에 저장이 됨.
게시판 만들기 2 - 게시글은 글쓴이만 수정 가능하게
·
BACKEND/Spring
글 수정 기능 중 작성 권한에 대한 처리를 합니다. 수정과 삭제 버튼은 로그인한 사람과 작성한 사람이 같을 경우에만 노출합니다. 직접 주소를 입력하고 요청할 경우를 대비해 Interceptor로 처리해줍니다. BoardController 현재 로그인 된 유저의 정보는 sessioUser에 저장되어있어서 불러온다. sessionUser을 모델로 보내준다. read페이지로 기존에 있던 getBoardDetail 수정 writer_idx 추가 SELECT board_idx,u.name, writer_idx, DATE_FORMAT(regDate,'%y-%m-%d') AS regDate, title, content, content_file FROM board b JOIN user u ON b.writer_idx ..
게시판 만들기 2 - 글 작성 후 작성했던 메뉴로 돌아가기
·
BACKEND/Spring
write_success.jsp 해당 게시판 목록으로 보내줌 BoardController @PostMapping("/write_pro") public String write_pro(@Valid @ModelAttribute("writeBean") BoardVO writeBean, BindingResult result,Model model ) { if(result.hasErrors()) { return "board/write"; } //DB에 새 게시글 저장 boardService.addContentInfo(writeBean); model.addAttribute("info_idx", writeBean.getInfo_idx()); return "board/write_success"; } 글 작성하면, writ..
게시판 만들기 2- 글 상세보기 페이지
·
BACKEND/Spring
main.jsp 글 목록에서 제목 클릭하면 해당 게시글을 상세 볼 수 있는 페이지로 넘김 ${obj.title} ${obj.name} ${obj.regDate} BoardController @GetMapping("/read") public String read(@RequestParam("info_idx") int info_idx, @RequestParam("board_idx") int board_idx,Model model) { model.addAttribute("info_idx", info_idx);//게시판 번호는 유지 //글번호로 db에서 게시글 읽어오기 return "board/read"; } sql작성하기 전에 테스트하기 boardMapper SELECT u.name, DATE_FORMAT(re..
게시판 만들기 2 -게시판 제목 및 게시글 목록
·
BACKEND/Spring
boardMapper.xml SELECT board_name FROM board_info WHERE info_idx =#{info_idx} 글쓴이 이름은 없음 ,writer_idx는 있음 user테이블과 join이 필요함 user_idx와 writer_idx는 동일함 MySQL에서 테스트해보기 SELECT board_idx, title, u.name, regDate FROM board b JOIN user u ON b.writer_idx = u.user_idx WHERE info_idx = #{info_idx} ORDER BY board_idx DESC ; 최신 글 순으로 조회, 게시판 번호(메뉴)로 검색 게시판 번호로 검색하니까 파라미터 타입은 정수 결과는 ContentVO로 가져옴 ContentVO생..
게시판 만들기 2 - 이미지 업로드 설정 및 DB저장
·
BACKEND/Spring
작성한 게시글을 저장합니다 파일(이미지)를 선택했을 경우 파일도 업로드 합니다. 이전 파일 업로드시 cos라이브러리를 사용했는데 Servlet 버전 3.1 부터는 StandardServletMultipartResolver 를 사용합니다. 이미지 업로드 방법 ​ 1. enctype="multipart/form-data" 를 wirte.jsp 폼태그에 적용 ​ 2. 스프링에서는 StandardServletMultipartResolver 빈등록 현재 사용하고있는 버전이 3.1이 아니라서 라이브러리 추가 함 ㅠㅠ pom.xml commons-fileupload commons-fileupload 1.3.3 servlet-context.xml 파일 위치 c-> java-> upload폴더 지정 ​maxUploadS..
게시판 만들기 2 - 글 작성하기(유효성검사)
·
BACKEND/Spring
BoardVO에 유효성 검사 추가 private int board_idx;//글번호 @NotBlank(message = "제목을 입력해주세요") private String title;//제목 @NotBlank(message = "내용을 입력해주세요") private String content;//글내용 private String content_file; //이미지 파일 이름 private int writer_idx;//글쓴이 private int info_idx;//게시판이름 private Date regDate;//작성날짜 BoardController @PostMapping("/write_pro") public String write_pro(@Valid @ModelAttribute("writeBean"..