5.4.4 실습 ModelAndView 클래스를 사용하여 결과 반환하기
저장소 객체에 저장된 도서 목록을 웹 브라우저에 모두 출력해 보겠습니다. 도서 목록의 데이터를 모델 속성에 저장하여 뷰 페이지에 전달합니다. 그리고 모델과 뷰를 한 번에 처리할 수 있는 ModelAndView 클래스를 사용하여 결과를 출력해 보겠습니다.
1. BookController 클래스에 다음과 같이 추가하고 수정합니다. 요청 매핑 경로가 /books/all인 requestAllBooks() 메서드에 ModelAndView 객체를 사용하여 모델과 뷰를 처리합니다.
코드 5-5 BookController.java
package com.springmvc.controller;
...
import org.springframework.web.servlet.ModelAndView; // 추가
...
@Controller
@RequestMapping("/books")
public class BookController {
...
@GetMapping
public String requestBookList(Model model) {
List<Book> list = bookService.getAllBookList();
model.addAttribute("bookList", list);
return "books";
}
@GetMapping("/all") // 수정
public ModelAndView requestAllBooks() {
ModelAndView modelAndView = new ModelAndView(); ➊
List<Book> list = bookService.getAllBookList();
modelAndView.addObject("bookList", list); ➋
modelAndView.setViewName("books"); ➌
return modelAndView; ➍
}
}