인프런 커뮤니티 질문&답변

권정익님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Model 질문

해결된 질문

작성

·

98

0

@RequestMapping("/response-view-v2")
public String responseViewV2(Model model) {
   model.addAttribute("data", "hello");

    log.info("data={}", model.getAttribute("data"));

    return "response/hello";
}

여기서 받는 파라미터 Model은 인터페이스고 이를 구현한 몇 가지가 있습니다. 구현된 것들은 addAttribute 메서드 또한 구현해 놨는데 어떤 게 model로 넘어오는지 모르겠습니다.ㅠ

public class ConcurrentModel extends ConcurrentHashMap<String, Object> implements Model {

public ConcurrentModel(String attributeName, Object attributeValue) {
        this.addAttribute(attributeName, attributeValue);
    }

}

몇가지 구현체들중에 같은 메서드를 가지고있고, 이걸 사용하는 거 같은데 어떻게 이게 선택이 되는 건가요??

답변 1

0

안녕하세요. 권정익님, 공식 서포터즈 코즈위버입니다.

말씀하신것처럼 Model 인터페이스를 구현한 여러 객체가 존재하며

어떤 구현체를 사용할지는 스프링 프레임워크가 알아서 선택하게 됩니다.

 

일반적으로 'ExtendedModelMap' 을 구현체로 사용하게 됩니다.

감사합니다.