[프로젝트/Spring Boot] 간단한 ToDoList 만들기 --- (5) CRUD -> "U"

hoho·2024년 3월 17일

이번엔 CRUD 중 Update 기능을 추가할 것이다.

다른 건 그대로 유지하고, "Finished" 버튼을 누르면 status만 In progress에서 Completed로 변경하고자 한다.

1. 전체 과정 정리

데이터 수정의 상세한 과정은 아래와 같다.

  1. 사용자가 Finished 버튼을 눌러 폼 데이터를 전달한다.
  2. 받아온 id를 토대로 엔티티를 DB에서 찾은 후 status를 Completed로 변경한다.
  3. 수정 내용을 저장한다.
  4. 리다이렉트한다.

2. form 추가

우선, index 파일에서 Finished 버튼이 있는 코드를 찾는다.
그 후, button을 form 태그로 묶고, method는 post로, action은 /update로 설정한다.
그리고 input 태그를 추가하여 id를 받아올 수 있게 한다.
(전체 코드는 {{#todos}}{{/todos}}로 둘러쌓여 있기 때문에 그냥 id라고 써도 괜찮다.)

3. 컨트롤러 작성

그 후 editTodo() 메서드를 작성한다.

Finished 버튼을 누르면 변경된 Status가 적용됨을 확인할 수 있다.

4. css 파일 수정 ?

취소선을 긋고 배경색을 변경하는 로직은 css 파일에서 수행해야 한다.
그런데 이 과정이 엔티티도 수정해야 하고 컨트롤러도 수정해야 해서 상당히 복잡하다. 그냥 뷰 상에서 수행하고 싶었는데, Mustache의 특성상 힘들 것 같다.
이건 추후 Thymeleaf를 사용하여 시도해보려고 한다.

0개의 댓글