더북(TheBook)

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; 
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.