Spring을 공부하다가, 우연히 Model이라는 걸 처음 듣게 되었을 때, 음 Model?
모형이나 본보기, 회화 조각, 문학, 미술 공예.. 등 다양한 뜻이 나오는데....뭔가 프로그래밍 언어에 적합한 Model의 의미는 못 찾았다....😂
그래서 프로그래밍에 적합한 Model을 찾기 위해 고군분투를 했다.
참고한 예시 코드를 보니 아래와 같았다.
@RequestMapping(value="/modelTest")
public String test1(Model model) {
String str = "GoCoder";
model.addAttribute("test",str);
return "modelTest";
}
model의 특징은 아래와 같다.
model.addAttiribute("test",str)에 "첫 번째 매개변수" 값은 개발자가 "직접" 정하는 것
model.addAttribute() 메서드의 첫 번째 매개변수는 개발자가 직접 정하는 키(key), 이 키는 템플릿 엔진(예: Thymeleaf, JSP 등)에서 사용되며, 템플릿에서 "변수를 참조"할 때 사용하는 이름이 된다.
예제 코드에서 model.addAttribute("test", str); 구문은 model 객체에 "test"라는 키로 str 변수를 추가한다. 이렇게 추가된 데이터는 템플릿 엔진에서 "test"라는 이름으로 참조할 수 있다.
예를 들어, Thymeleaf를 사용하는 경우 리턴된 view 이름 html에서 다음과 같이 템플릿에서 "test" 변수를 사용할 수 있다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Model Test</title>
</head>
<body>
<h1 th:text="${test}"></h1>
</body>
</html>
즉, 첫번째 매개변수 값은 뭐랄까... 서로 떨어져 있는 대상에게 전달할 때 쓰는 우편 봉투와 같은 것, 우편 봉투의 내용은 두 번째 매개변수 값이다!
'스프링부트' 카테고리의 다른 글
Containerless에 대해서 알아보기 (0) | 2023.04.13 |
---|---|
@Controller에서의 다양한 return 타입들 (0) | 2023.04.11 |
@DataTimeFormat(Annotation)에 대해서 알아보기 😃 (0) | 2023.04.11 |
@RequiredArgsConstructor 상세 설명 (0) | 2023.04.06 |
스프링MVC 기본구조 (0) | 2023.04.06 |