SpringBoot Project

SpringBoot Project

[SpringBoot] 게시물 수정, 삭제 작성자일 때만 가능하게 하기(thymeleaf 이용)

게시물을 작성하고 나서 작성자만 게시물을 수정, 삭제 버튼이 보이도록 구현을 하고자 한다. 또한, 삭제는 ADMIN(관리자) 권한이 있을때도 가능하게 하였다. 참고로 아래 코드의 detail은 Model에 저장된 데이터의 지정된 이름이다. 우리의 프로젝트에는 principal이 writerId로 설정되어있다. 게시물 수정 thymeleaf if문을 이용하여 조건에 맞을때만 수정버튼이 보이도록 해주었다. 아래는 삭제버튼을 구현한 부분이다. 게시물 삭제 if문을 보면 수정버튼과 다르게 #authorization.expression('hasRole(''ROLE_ADMIN'')') 조건을 추가해줘서 관리자 Role이 부여되었을때 버튼이 보이게 해주었다.

SpringBoot Project

[SpringBoot] 게시판 Pagination(Pageable 이용한 페이징), 리스트 불러오기

게시판 페이징을 구현하여 게시글 리스트를 불러오려고 한다. 아래의 사진과 같이 구현하고자 하였다. 게시물 5개씩 불러오기 Pagination 부분에 7개 고정하기 먼저 Board Entity에서 리스트로 끌어올때 필요한 정보들을 모아둔 DTO를 구성했다. @Getter public class BoardListDTO { private long bno; private String title; private int readCount; private String writer; private LocalDateTime updatedDate; private LocalDate toDay; private String writerId; //Entity를 -> BoardListDTO(BoardEntity ent) publi..

SpringBoot Project

[SpringBoot] 게시판 게시물 조회수 기능

게시물을 클릭하면 조회수가 증가하는 쿼리를 추가해 주려고 한다. 우선 엔티티에 조회수 컬럼을 넣어주고 private int readCount; //BoardEntity 에 있는 조회수 컬럼 그리고 이제 repository에 조회수 증가 쿼리를 작성해주었다. @Modifying @Query("update BoardEntity b set b.readCount = b.readCount +1 where b.bno = :bno") //entity 의 readCount를 업데이트하는 쿼리 int updateReadCount(@Param("bno")Long bno); 나같은 경우는 @Param("bno") 를 추가하지 않으면 실행이 되지 않아 추가를 해주었다. 그리고 service process에 아래와 같이 메소드..

SpringBoot Project

[SpringBoot] 게시판 게시물 삭제하기(delete)

게시물 삭제 과정은 간단하다. JPA에서 delete를 제공하기 때문이다. //삭제 @DeleteMapping("/boards/{bno}") public String genDelete(@PathVariable long bno) { service.delete(bno); return "redirect:/boards"; } 이제 ServiceProcess에 delete를 구현 해보자. @Override public void delete(long bno) { repository.deleteById(bno); } Id인 bno(게시물 번호)를 이용하여 삭제하는 deleteById는 JPA에서 기본으로 제공하는 메서드이다. 이제 게시물 대시보드에서 삭제 버튼을 구현했다. 게시물 삭제

꿈꾸는야오옹
'SpringBoot Project' 카테고리의 글 목록