본문 바로가기

Spring

SpringBoot [Model 사용하기]

반응형

컨트롤러는 RequestMapping 어노테이션이 적용된 메서드에서 파라미터로 (Model), 커맨드 객체 등을 받아 파라미터로 받은 객체에 데이터를 저장하고 다시 뷰에 전달해 뷰에서 데이터를 사용할 수 있게 한다. 이렇게 사용되는 모델은 스프링을 사용한 웹 애플리케이션 개발자 가장 기본이 되는 부분이다 .

 

package com.study.HelloWorld.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.List;

@Controller
public class MyController {

        @RequestMapping("/")
        public @ResponseBody String root() throws Exception{

            return "Model & View";

        }

        @RequestMapping("/mv")
        public String test1(Model model){

                model.addAttribute("name","홍길동");

                return "mv";

        }

        @RequestMapping("/test1")
        public ModelAndView test2(){

            ModelAndView modelAndView = new ModelAndView();
            List<String> list = new ArrayList<>();

            list.add("test1");
            list.add("test2");
            list.add("test3");

            modelAndView.addObject("lists",list);
            modelAndView.addObject("ObjectTest","테스트");
            modelAndView.addObject("name","홍길동");
            modelAndView.addObject("view/myView");

            return modelAndView;


        }
}

 

"/" 을 요청하게 되면

"/mv" 요청하게 되면 

 

"/test1" 요청하게 되면  

 

 

jsp 설정은 다음과 같다

 

test1.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%out.println("hello world");
     %>
    <br>
        당신의 이름은 ${name}입니다.<br>

     objectTest =${ObjectTest}
    <br>

    ${list}

    <c:forEach var="mylist" items="${lists}">
        ${mylist}<br>
    </c:forEach>

</body>
</html>

 

 

mv


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    당신의 이름은 ${name} 입니다.


</body>
</html>

 

 

 

/mv으로 url  호출이 들어오면 test1 메서드가 실행된다. 이 메서드는 모델을 파라미터로 받아 해당객체 값을 키 ,벨류 값으로 추가 하고 있다. 리턴으로 스트링을 넘기면 뷰 리졸버가 test1.jsp를 찾아온다. 이때 test1.jsp 에서는 조금 전 모델의 데이터를 사용하여 뷰에 데이터를 출력할 수 있게 된다.

 

/test1 로 url호출이 들어 오면 test2메서드가 실행된다. 이메서드에서는 스트링값을 리턴하지 않고  ModelAndView 라는 객체 변수를 만들어 데이터 정보를 추가학 뷰 정보까지 담아 객체 자체를 리턴한다.

 

반응형