Spring Boot

250226 Spring Boot 08 - 블로그 만들기(3)

suerte10 2025. 2. 26. 18:22

1. 새 포스트 작성 페이지 만들기

1) PostController 클래스 파일에 코드 추가

 

2) dto 패키지 하위에 PostCreateDto.java 파일 생성

 

3) PostService.java 파일 코드 추가

 

4) templates.post 폴더 하위에 create.html 파일 생성

브라우저에 출력되는 화면

 

 

 

2. 상세보기 페이지 만들기

1) PostController 클래스 코드 추가

 

2) templates.post 폴더 하위에 details.html 파일 생성

 

3) PostService 파일에 코드 추가

 

4) details.html 파일 코드 수정

브라우저에 출력되는 화면

 

 

 

3. 수정하기 기능 만들기

1) PostController 클래스 파일 수정

 

2) details.html 파일 복사 + templates.post 폴더 하위에 붙여넣기 ==> 이름 변경해서 modify.html 파일 만들기

3) modify.html 파일 수정

브라우저에 출력되는 화면

 

4) static 폴더 하위에 js 폴더 생성

 

5) js 폴더 하위에 postModify.js 파일 생성

 

6) PostController 클래스 파일 코드 추가

 

7) PostService 파일 코드 추가

* deleteById() 메서드는 먼저 아규먼트로 입력받은 id를 select문으로 검색하고, 조건을 만족하는 데이터가 있을 경우 delete를 실행한다.

 

8) postModify.js 파일 코드 추가

 

9) dto 패키지 하위에 PostUpdateDto.java 파일 생성

* 포스트 업데이트 요청에서 전송되는 양식 데이터 파라미터들을 저장하기 위한 DTO

* 컨트롤러에서 서비스 메서드를 호출할 때 아규먼트로 전달하게 될 DTO

 

10) PostController 클래스 파일에 코드 추가

 

11) PostService 클래스 파일에 코드 추가

 * [m] 참고: Spring의 Persistence Context와 Dirty Checking

 

 

 

4. 검색기능 추가하기

1) templates.post 하위에 있는 list.html 파일에 코드 추가

* #string : 타임리프의 문자열 관련 기능을 제공하는 유틸리티 객체

* .equals(...) : 두 문자열이 동일한지 비교하고 결과를 true/false로 리턴하는 메서드

* param.category : 요청 파라미터의 category 파라미터의 속성값 

* <th:selected> : <select> 요소 내의 <option> 요소를 선택 상태로 설정하는데 사용하는 타임리프의 attribute. 속성값이 true이면 해당 <option> 요소가 선택 상태로 설정된다.

 

2) PostRepository 인터페이스 파일에 코드 추가

 

3) PostService 클래스 파일에 코드 추가

 

4) dto 패키지 하위에 PostSearchDto.java 파일 생성

 

5) PostController 클래스 파일 코드 추가

 

6) PostController 클래스 파일 수정

 

7) fragments.html 파일 수정

 

 

----------------------------------------

디스패쳐 서블릿이 request parameter를 확인하고 메서드 파라미터에 맞는 아규먼트 객체로 변환시켜준다.