본문 바로가기

Spring Framework 개발 일지/Spring으로 게시판 만들기

FirstSpringBoard#5-4] 게시물 수정 기능 구현

반응형

저번 시간에는 특정 글 조회 기능을 구현했었죠.

이번 시간에는 게시물을 수정하는 기능을 구현해보겠습니다.



기능을 구현하는데 있어서.

게시물의 어떤 칼럼을 수정할지 생각해야겠죠.

우리가 수정할 것은 제목과 본문입니다.

작성자는 그냥 화면에 보여주기만 합니다.

아래는 board_update.jsp의 소스코드입니다.


이제 컨트롤러를 구현해줄게요.

우선 소스코드를 먼저 볼게요.
그런데 사용되는 메소드가 두개입니다.각 메소드는 어떤 기능을 할까요?


아래는 글 수정 화면입니다.

글 수정 화면을 보니 <input>태그 안에 수정할 게시물의 제목과 내용을 넣어서 보여주고 있네요.

글 수정 화면으로 넘어갈 때 해당 게시물의 board 객체를 board_update.jsp에 뿌려주고 있습니다.

boardDAO에 getBoard(int id)를 이용하는 걸 알 수 있겠죠.

그리고 수정화면에서 <input> 태그에 내용을 입력하고 수정 버튼을 누르면 /updateProcess.do로 수정한 내용이 넘어가죠.

그리고 boardDAO의 modifyBoard(boardVO vo) 메소드를 이용해서 수정한 내용이 DB에 반영됩니다.

아래는 로직을 이해할 수 있는 그림입니다.

첫 번째 그림은 저번 포스팅에서 봤던 그림입니다.

글 조회 화면에서 글 수정 화면으로 넘어갈때는 아래와 같이 처리됩니다.

boardUpdate.do로 request가 전송되고 받은 commend 객체를 Comtroller가 DAO에 넘겨주고 DAO는 DB와 연동해서 받아온 데이터를 다시 Controller로 보내줍니다.

그러면 다시 Commend 객체를 view로 front Controller가 보내주죠.

다음 그림은 사용자가 수정할 내용을 입력하고 수정 버튼을 눌렀을 때.

데이터베이스에 수정한 내용이 반영되는 로직을 설명한 그림이에요.

Controller가 DAO를 호출해서 DB와 연동하지만 Update 기능이기 때문에 리턴 값은 없습니다.

그리고 Controller는 redirect를 리턴값에 실어 보내서 Client에게 getList.do로 이동하라는 응답을 전송합니다.

그러면 사용자는 응답을 받고 getList.do로 ruquest를 보내죠.

그러면 front Controller는 Handler Mapper에게 해당하는 getList.do에 연결된 Controller를 찾아서 호출해줍니다.

이번 포스팅에서는 수정 기능을 구현해봤고요.

로직에 대해서도 간단한 그림을 통해서 이해해봤습니다.

다음 시간에는 삭제 기능을 구현해볼게요.


반응형