본문 바로가기

Java/Java Advance

Spring Framework에서 ModelAndView 사용하기

728x90
반응형

Spring Framework는 웹 애플리케이션을 개발하기 위한 강력한 도구들을 제공하며, 그 중에서도 `ModelAndView` 클래스는 클라이언트에게 응답을 보낼 때 모델 데이터와 뷰 정보를 함께 전달하는 데 사용됩니다. 이 클래스는 컨트롤러에서 처리된 결과를 효과적으로 나타내며, 데이터와 뷰를 결합하여 클라이언트에게 전달할 수 있습니다.


1. Model (모델)

`ModelAndView`의 첫 번째 주요 요소는 모델입니다. 모델은 클라이언트에게 전달되는 실제 데이터를 나타내며, 클라이언트 측에서 사용할 수 있는 정보들로 구성됩니다. 주로 템플릿 엔진(Thymeleaf, JSP 등)에서 사용될 데이터로, 클라이언트에게 표시할 내용을 담고 있습니다.


2. View (뷰)

`ModelAndView`의 두 번째 주요 요소는 뷰입니다. 이는 클라이언트에게 표시될 화면을 나타내며, 일반적으로는 사용자에게 보여질 HTML 페이지를 나타냅니다. 그러나 JSON, XML 등 다양한 형식을 지원하여 다양한 미디어 유형에 대한 렌더링을 지원할 수 있습니다.

다음은 Java 코드에서 `ModelAndView`를 사용하는 간단한 예제입니다.

import org.springframework.web.servlet.ModelAndView;

// 컨트롤러 메소드 예제
public ModelAndView myControllerMethod() {
    // 모델 데이터 설정
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("userName", "John Doe");
    modelAndView.addObject("userAge", 25);

    // 뷰 이름 설정 (예: "myView"는 실제 뷰 템플릿의 이름이 될 수 있음)
    modelAndView.setViewName("myView");

    // 완성된 ModelAndView 반환
    return modelAndView;
}


위의 코드에서 `addObject` 메소드를 사용하여 모델에 데이터를 추가하고, `setViewName` 메소드를 사용하여 뷰의 이름을 설정합니다. 컨트롤러는 이 `ModelAndView` 객체를 반환하면, Spring은 이를 해석하여 클라이언트에게 전달할 응답을 구성합니다.

`ModelAndView`를 활용하여 데이터와 뷰를 효과적으로 전달함으로써, Spring 개발자는 웹 애플리케이션의 유연하고 동적인 동작을 달성할 수 있습니다.

728x90
반응형