글 상세보기
Controller
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F2dfc9f2a-596f-4410-bce3-3ea42f055692%2Fcontroller.JPG)
- 컨트롤러를 통해서 Model에 값을 담아서 전송을 한다.
Service
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F6e78f5ed-564a-4539-945a-3291650083ae%2FService.JPG)
- int 값을 넣게 되고 해당 값에 해당하는 Id값을 찾아서 reutrn 해준다.
detail.jsp
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2Fab35d13b-baf7-4fa3-8ac3-a34fabcea6d1%2Fdetail.jsp.JPG)
- 들어오는 board의 id값에 해당하는 DB에서 title과 content를 화면에 표기하면 간단하게 구성할수가 있다.
글 삭제하기
Controller
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F100b7ddb-4957-4886-97ab-099fcc61abfa%2Fcontroller.JPG)
- DeleteMapping을 사용하여 들어오는 값을 받고 url에 파싱한뒤 Service의 삭제 메서드를 실행한다.
Service
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2Fe1012984-4fb2-4af4-abb3-5a9d4cf2cea8%2FService.JPG)
detail.jsp
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F10a73bf2-a397-41d8-bf70-2fd7db697fa9%2Fdetail.jsp.JPG)
- 글번호의 id 값을 담아서 js로 전송을 하게 된다.
-> board안에 user가 담겨있으니 username을 연관 지어서 불러올수가 있다.
Eager타입으로 미리 선언은 해놓았기 떄문에 따로 부르지 않아도 같이 값이 따라오는 것이다.
<c:if> 를 사용하여 조건문을 만들어 주었고 조건은
board.user.id가 UserDetail의 user.id와 같을떄 삭제 버튼이 보이게 만들어 주었다.
- 코드의 효과는 글을 작성한 사용자만이 글을 지울수 있게 만들어 준다.
board.js
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2Fd4e3c01d-db67-4fdd-be6a-b8823fa1c4cd%2Fboardjs.JPG)
- Pathvariable을 사용하기 떄문에 id 값을 담아서 보내주게 된다.
이떄 value를 사용 하면 안되는데 이유는 id 값을 찾아서 detail에 있는 text값을 뽑아와야 하기 떄문이다.
따른 js 코드들은 value값을 뽑아오는데 글 번호라는 항목에 id 값에 해당하는 값이 화면이 보여지기 떄문에 그 text를 뽑아 오는 것이다.
==> 이부분은 나도 아직 좀 헷갈리는 부분이다.
글 수정하기
detail.jsp
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2Fb2725d20-2fc5-4ab2-aaf2-543f261b3a85%2F1.JPG)
- 삭제 버튼과는 별개로 버튼을 누를시에 새로운 페이지로 이동을 하게 만들어 주었다.(board의 id값으로 지정한 url)
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F755ee85b-0404-4a89-be5b-130170cf30c4%2F1.JPG)
type= hidden을 하나 추가해 주었고(id값을 들고 다닐수 있게)
버튼을 누를시 js가 발동되게 수정을 해주었다
-> 거의다 글쓰기,삭제하기와 비슷하다.
board.js
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F84e3584d-3e33-410b-928f-458dea02c9c5%2F2.JPG)
- 어려운 점은 없는거같고 url을 통해서 수정이기 떄문에 PUT요청을 하여 값을 전해주는 것으로 해주었다.
Controller
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F872a65f2-5034-41be-b8c8-cd27cd177444%2F1.JPG)
- 버튼을 누를시에 페이지를 연결해주는 Get호출이다.
- model을 통해서 값을 가지고 홈페이지로 가져가게 해주었다.(id에 해당하는 board값을 가지고 간다.)
ApiController
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F7b279893-4cf3-4f4a-8fc3-16f364b557a3%2Fapi.JPG)
- js를 통해서 들어오는 값을 '수정' 이라는 Service의 메서드에 값을 넣어준다.
Service
![](https://velog.velcdn.com/images%2Fjjimgo%2Fpost%2F17e16dda-8eb8-4b35-886c-adf5c237a230%2F3.JPG)
-> 영속화를 위해서 일단 id에 해당하는 값을 찾아주고 그 값을 수정한뒤 save한다.
- save메서드가 없는이유는 Transactional에 의해서 자동으로 메서드 종료시에 값이 저장되기 떄문이다.