8.6. 책 수정 화면 뷰 작성하기
수정 뷰 화면은 책 생성 화면을 복사해서 수정하겠습니다.src/main/resources > templates.book > edit.htmlCopy 책 수정하기 제목 : 가격 :
- 스프링 부트 하루만에 배우기
- · 2024. 7. 21.
수정 뷰 화면은 책 생성 화면을 복사해서 수정하겠습니다.src/main/resources > templates.book > edit.htmlCopy 책 수정하기 제목 : 가격 :
책 수정 화면 컨트롤러는 사실상 "읽기"와 동일하고 반환하는 뷰와 DTO만 다릅니다. 이럴 경우 read 메소드를 복사하는 것도 한 방법이지만 기왕 @ExceptionHandler를 만들었으므로 활용해 보겠습니다.src/main/java > com.yse.dev.book > BookController.java@GetMapping("/book/edit/{bookId}") public ModelAndView edit(@PathVariable Integer bookId) throws NoSuchElementException { ModelAndView mav = new ModelAndView(); BookEditResponseDTO bookEditResponseDTO = this.bookSe..
책 컨트롤러의 수정 기능은 "읽기"와 거의 동일합니다. 책 정보를 읽어보고, 책 정보가 있다면 책 정보를 담은 화면을 보여주죠. 책 정보가 없다면 NoSuchElementException 오류가 납니다.매 번 try - catch로 오류를 잡아내는 것보다, 만약 컨트롤러 메소드에서 오류가 날 경우 자동으로 특정 메소드가 실행된다면 더 편리하지 않을까 하는 생각에서 나온 것이 @ExceptionHandler 입니다.NoSuchElementException이 발생하면 실행되는 메소드 noSuchElementExceptionHandler를 정의해 보겠습니다.src/main/java > com.yse.dev.book > BookController.java@ExceptionHandler(NoSuchElementE..
책 수정 화면을 보여주는 기능은 사실상 "읽기"와 거의 비슷하기 때문에 BookService.read 메소드를 복사하겠습니다.src/main/java > com.yse.dev.book.service > BookService.javapublic BookEditResponseDTO edit(Integer bookId) throws NoSuchElementException { Book book = this.bookRepository.findById(bookId).orElseThrow(); return BookEditResponseDTO.BookFactory(book); } read 메소드와 달라진 점은 BookReadResponseDTO 를 반환하는 대신 새로 만든 BookEditResp..
책 정보를 읽어서 HTTP 응답으로 내보내기 위한 클래스를 만들어보겠습니다.만들고자 하는 내용은 책 상세 화면 응답 DTO 만들기에서 만들었던 BookReadResponseDTO.java와 완전히 동일합니다.일단 코드는 동일하기 때문에 기존의 BookReadResponseDTO.java 코드를 복사하겠습니다.src/main/java > com.yse.dev.book.dto > BookReadResponseDTO.java 파일을 Ctrl + C 하거나 우클릭 => Copy 해서 복사합니다.src/main/java > com.yse.dev.book.dto 패키지에서 Ctrl + V를 클릭하거나 우클릭 => Paste를 눌러 붙여 넣습니다.STS에서 동일한 이름이 있다는 알림을 보여주고, 새 이름을 입력하라고..
책 수정 정보를 보여주기 위한 화면을 만들어 보겠습니다.브라우저에서 /book/edit/1 주소에 접속하면 책 정보를 수정할 수 있는 화면을 보여줍니다.우리가 만들 화면은 아래와 같습니다.책 수정 화면은 책 입력 화면 + 책 상세 화면입니다. 책 입력 화면의 화면 형식을 그대로 만든 후 값만 채워 보여주면 되죠. 따라서 책 입력과 책 상세 코드를 복사해서 짜집기해보겠습니다.