Spring Framework에서 Model interface

iy·2024년 1월 18일
0

Spring입문

목록 보기
3/5

Model interface

  • Spring Framework에서 Model 인터페이스는 컨트롤러에서 뷰로 데이터를 전달할 때 사용
    - 뷰에 전달할 데이터를 저장하고 컨트롤러와 뷰 간의 통신을 도움
  • 일반적으로 Spring MVC 컨트롤러 메서드는 뷰에 전달할 데이터를 "Model" 객체에 추가
    - 해당 객체를 통해 뷰로 데이터 전달
  • Model 인터페이스는 뷰에 전달될 데이터를 저장하는 구조를 제공
    - 이 구조를 통해 컨트롤러에서 뷰로 데이터를 효과적으로 전송할 수 있음

model.addAttribute()

Model addAttribute(String attributeName, @Nullable Object attributeValue);

	/**
	 * Add the supplied attribute to this {@code Map} using a
	 * {@link org.springframework.core.Conventions#getVariableName generated name}.
	 * <p><i>Note: Empty {@link java.util.Collection Collections} are not added to
	 * the model when using this method because we cannot correctly determine
	 * the true convention name. View code should check for {@code null} rather
	 * than for empty collections as is already done by JSTL tags.</i>
	 * @param attributeValue the model attribute value (never {@code null})
	 */

Model에 데이터를 추가해주기 위한 Model인터페이스의 메서드!
model.addAttribute(name,value)value 객체를 name 이름으로 추가해준다.


  • 혼자 해보는 간단 실습
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Model Practice</title></head>
<body>
<div>
    모델에 담긴 데이터가 뷰에 잘 전달되는지 확인!!<br>
</div>
<div>
    (현재 날짜: <span th:text="${nowDate}"></span>)
</div>
</body>
</html>

뷰 페이지 구현
nowDate라는 이름을 통해 model에 의해 전달된 데이터를 보여준다.

@Controller
public class ModelPracticeController {

    @GetMapping("/model/practice")
    public String showLocalDate(Model model){
        LocalDate now = LocalDate.now();

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");

        String formatedNow = now.format(formatter);
        model.addAttribute("nowDate",formatedNow);
        return "model-practice";
    }
}

해당 데이터를 담아 전달할 Controller 구현
현재 날짜를 원하는 모양으로 format하고 String으로 데이터를 model에 담아 전달한다.

원하는 데이터가 잘 담겨 넘어온 것을 확인할 수 있다


Date타입Format코드참고

Model 인터페이스

0개의 댓글