Web

Ch11. MVC 1 : ModelAndView

tose33 2022. 7. 18. 21:33

SurveyController.java

@Controller
@RequestMapping("/survey") // 이 클래스는 "/survey" 경로 처리  
public class SurveyController 
{
	// GET 방식의 "/survey" 경로 요청 처리 (주소창 직접 입력은 GET 방식) 
	@GetMapping
	public String form(Model model) 
	{
		List<Question> questions = createQuestions();
		model.addAttribute("questions", questions);		
		return "survey/surveyForm";			
	}
    
    // ... 
}

지금까지 컨트롤러는 위의 form() 메서드처럼 Model에 전달할 데이터를 추가하고, 뷰 이름을 String으로 리턴했다. 

 

ModelAndView를 사용하면 두 가지를 한번에 할 수 있다. 

	@GetMapping
	public ModelAndView form()
	{
		List<Question> questions = createQuestions();
		ModelAndView mav = new ModelAndView();
		mav.addObject(questions); // 뷰에 전달할 모델 데이터 추가 
		mav.setViewName("survey/surveyForm"); // 뷰 이름 설정 
		return mav;
	}

ModelAndView 객체를 만들고,

addObject()로 뷰에 전달할 모델 데이터 추가 

setViewName()으로 뷰 이름 설정 

 

 

 

 

 

출처 : 스프링5 프로그래밍 입문 (최범균 저)