티스토리 뷰

현재의 벡엔드 개발은 MVC : Model, View, Controller 방식으로 개발을 한다.

 

 

  • 컨트롤러는 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. (예: 워드 프로세서에서 문서를 편집하는 것) 또, 컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다. (문서를 스크롤하는 것)
  • 모델은 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가·제거·수정할 수 있다. 어떤 MVC 구현에서는 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어 오기도 한다.
  • 는 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다.

 

 

 

 

이번에는 직접 컨트롤러를 만들어 보겠다.

 

 

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data", "spring");
        return "hello";
    }


	//새로 추가된 코드
    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model mode){
            model.addAttribute("name", name);
            return "hello-template";
        }

    }
}

기존의 HelloController에 추가로 입력을 해주자. 

 

 

 

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}"></p>
</body>

 

코드를 추가해준 뒤에 templates 폴더에 hello-template.html 파일을 생성해주자

 

 

 

http://localhost:8080/hello-mvc?name=jaeguin! 로 해야 작동하는 이유는

컨트롤러에서 name이 Jaeguin으로 넘어가고 

html에서 +${name} 때문에 Jaeguin을 주소창에 쳐주면 넘어간다

 

 

 

 

 

 

 

 

댓글