MVC : Model , View , Controller
- 과거에는 View 와 Controller 가 구분이 안됐음. (과거의 JSP, Model 1 방식)
- 역할을 확실히 나누어 View 는 화면을 그리는데 최선을 다해야 하고
- Controller, Model은 비즈니스 로직 등 내부적인 일에 집중해야함.
HelloController.java
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data","HIsadasasdadasddasdasdHI!!");
return "hello";
}
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
}
hello - template .html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
- 타임리프 엔진을 거치지 않고 html 파일을 열어 보면 hello! empty가 보인다
- 타임리프의 장점으로 그냥 열어보더라도 무언가의 껍데기를 볼 수 있다
http://localhost:8080/hello-mvc 접속시 에러 발생
오류 메세지 :
WARN 16500 --- [nio-8080exec2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved[org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' for method parameter type String is not present]
name parameter가 없어서 에러가 뜸.
http://localhost:8080/hello-mvc?name=spring 값 입력 = 정상출력
'스프링 > 스프링 입문 - 김영한' 카테고리의 다른 글
7.비지니스 요구사항 정의 (0) | 2023.01.04 |
---|---|
6. 스프링 웹 개발 기초 ( API ) (0) | 2023.01.02 |
4. 스프링 웹 개발 기초 ( 정적 컨텐츠 ) (0) | 2023.01.01 |
Gradle 프로젝트에서 IntelliJ 인텔리제이 Spring Boot DevTools 적용하기 (0) | 2023.01.01 |
3. View 환경설정 (0) | 2022.12.31 |