[Spring]-Model객체

윤재열·2022년 2월 1일
0

Spring

목록 보기
3/72
post-custom-banner

Model

Model은 HashMap 형태를 갖고 있으며, Key,Value값을 가지고 있습니다.

  • addAttribute()와 같은 기능을 통해 모델에 원하는 속성과 그것에 대한 값을 주어 전달할 뷰에 데이터를 전달할 수 있습니다.
    👉addAttribute는 Map의 put과 같은 기능과 같아서 이를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전달할 뷰에 데이터를 전달할 수 있습니다.

  • Spring에서 Controller의 메서드를 작성할 때는 특별하게 Model이라는 타입을 파라미터로 지정할 수 있습니다.

  • Model 객체는 JSP에 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재입니다.

  • 이를 이용해서 JSP와 뷰(View)로 전달해야 하는 데이터를 담아서 보낼 수 있습니다.

  • 메서드 파라미터에 Model 타입이 지정된 경우에는 스프링은 특별하게 Model타입의 객체를 만들어서 메서드에 주입하게 됩니다.

View에 전달해보기

package com.mystudy.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class TestController {

	@GetMapping("/test")
	public void testMethod(Model model) {
		
		String test = "model interface";
		
		model.addAttribute("test", test);
	}
}
  • Controller이노테이션을 생성한후에 @GetMapping하여 url을 "/test/"로,
    메서드에 매개변수를 Model 타입의 model변수를 선언했습니다.
    String 타입의 변수 test를 선언하고, model.addAttribute를 통해 view에 데이터를 전달 했습니다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<h1>Test</h1>
	
	<h2>${test }</h2>
</body>
</html>

  • 처음 Controller에 Model타입의 model의 변수 선언을 통해 ${test }부분의 test는 model.addAttribute("test", test)로인해 치환되어 model interface가 출력되었습니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/
post-custom-banner

0개의 댓글