[Spring] 컨트롤러와 화면 처리
![[Spring] 컨트롤러와 화면 처리](/assets/img/web/spring/logo.png)
프로젝트의 컨트롤러를 작성해 화면 처리를 해봅시다.
- 1. BoardController 작성 및 resources 추가
- 2. list.html 작성
- 3. BoardController list() 작성
- 4. list.html 결과
- 5. BoardController register(), registerPost() 작성
- 6. register.html 작성
- 7. register.html 테스트
- 8. register.html 등록 결과
- 9. BoardController read() 작성
- 10. read.html 작성
- 11. read.html 결과
- 12. BoardController modify(), remove() 작성
- 13. modify.html 작성
- 14. modify.html 결과
- 15. modify.html 수정 결과
- 16. modify.html 삭제 결과
서비스 계층의 구현이 끝났으니 컨트롤러를 작성해 화면을 처리해야 합니다.
1. BoardController 작성 및 resources 추가
프로잭트 내에 controller 패키지를 추가한 뒤 BoardController를 위의 그림과 같이 작성합니다.
또한 이전에 guestbook에서 사용한 템플릿을 가져와 resources에 추가합니다.
2. list.html 작성
html 파일들은 guestbook의 내용과 거의 동일하지만 경로와 화면에 표시될 형식을 수정해야합니다.
guestbook의 list.html을 가져와 동일하게 작성한 후 인텔리제이에서 Ctrl + H를 누르면 나오는 바꾸기 기능을 활용해 guestbook을 board로 모두 바꿉니다.
위의 그림과 같이 게시글 목록에서 보여지는 제목의 형식을 댓글 개수가 보이도록 바꿉니다.
3. BoardController list() 작성
list 화면과 매핑될 list()에 boardService.getList()를 사용해서 작성합니다.
4. list.html 결과
BoardApplication을 실행한 뒤 브라우저에서 ‘/board/list’를 살펴본 결과 제목과 작성자가 정상적으로 댓글의 개수와 이메일을 보여주고 있는 것을 확인할 수 있습니다.
5. BoardController register(), registerPost() 작성
BoardController에 GET 방식으로 동작하는 링크인 register()와 POST 방식으로 처리하는 메소드인 registerPost()를 작성합니다.
registerPost()는 list로 redirect하도록 작성합니다.
6. register.html 작성
등록 처리에 사용될 register.html을 작성합니다.
register.html 역시 guestbook에서 board로 바꿔준 뒤 위에 그림에서 WirterEmail 부분의 변경사항을 참고해 작성합니다.
7. register.html 테스트
브라우저에서 register 화면으로 정상적으로 이동하는 것을 확인한 뒤 정상적으로 등록이 수행되는지 확인합니다.
이때 작성자 이메일은 데이터베이스에 존재하는 이메일을 입력해야 하는것을 꼭 주의해야 합니다.
8. register.html 등록 결과
list 화면에 정상적으로 글이 등록된 것을 확인할 수 있습니다.
9. BoardController read() 작성
BoardController에 boardService.get()을 사용하는 read()를 작성합니다.
10. read.html 작성
read.html을 작성하고 동일하게 guestbook을 board로 바꿉니다.
dto.writerName 또한 신경써서 바꿔줍니다.
11. read.html 결과
list 화면에서 bno를 클릭해 read 화면으로 넘어가 확인한 결과 정상적으로 게시물을 조회할 수 있습니다.
12. BoardController modify(), remove() 작성
수정과 삭제 처리에 사용될 modify()와 remove()를 작성합니다.
수정과 삭제는 Post 방식으로 처리되고 GET 방식을 통해 remove()는 list로, modify()는 read로 redirect됩니다.
13. modify.html 작성
modify.html을 작성하고 guestbook을 board로 바꿉니다.
dto.writerName 또한 신경써서 바꿔줍니다.
14. modify.html 결과
브라우저에서 modify 화면이 정상적으로 출력되는 것을 확인할 수 있습니다.
15. modify.html 수정 결과
modify 화면에서 Modify 버튼을 누르면 정상적으로 read 화면으로 넘어가진 뒤 게시글이 수정된 것을 확인할 수 있습니다.
16. modify.html 삭제 결과
modify 화면에서 Remove 버튼을 누르면 정상적으로 list 화면으로 넘어가진 뒤 게시글이 삭제된 것을 확인할 수 있습니다.