본문 바로가기

⭐ SpringBoot/𝄜 게시판 with SpringBoot

4. 모델, 뷰, 컨트롤러의 역할

728x90
반응형

Spring Boot 구성도.drawio
0.00MB

컨트롤러를 클라이언트로부터 요청을 받고 뷰는 최종 페이지를 생성하고, 모델은 최종 페이지에 쓰일 데이터들을 뷰에게 전달하는 역할을 한다.

 

# 기본 절차

1. localhost:8080/hi 로 접속을 하면 controller 가 받는다.

2. 컨트롤러에 정의된 메소드가 실행된다.

3. 그리고 해당 메소드가 반환하는 값을 통해 view 페이지를 보여준다.

4. 해당 view 페이지의 변수를 사용하기 위해서는 model을 거쳐야 한다.

5. 모델로 정의된 메소드 값을 뷰페이지로 출력한다.

 

localhost:8080/bye 로 출력이 되도록 페이지 하나를 추가하기

FirstController.java

package com.example.firstproject.controller;

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

@Controller
public class FirstController {

    @GetMapping("/hi") //접속 가능한 url을 명시
    public String niceToMeetYou(Model model) {
        model.addAttribute("username", "짱구"); //모델은 짱구라는 이름을 username에 맵핑시켜서 보내주는 역할을 한다.
        return "greetings"; // templates/greetings.mustache -> 브라우저로 전송!
    }

    @GetMapping("/bye") //접속 가능한 url을 명시
    public String seeYouNext(Model model) {
        model.addAttribute("nickname", "may9noy"); //모델은 짱구라는 이름을 username에 맵핑시켜서 보내주는 역할을 한다.
        return "goodbye"; // templates/greetings.mustache -> 브라우저로 전송!
    }
}

templates/goodbye.mustache 파일을 추가

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>짱구의 게시판 스프링기반 게시판 만들기</title>
</head>
<body>
    <h1>{{nickname}}님, 다음에 뵙겠습니다.</h1>
</body>
</html>

url 호출 : http://localhost:8080/bye

728x90
반응형