Model, Controller : 비즈니스 로직, 내부 처리하는데 집중해야 한다.
View : 화면 그리는 모든 영향
java/hello.hellospring/controller/HelloController
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","spring!!");
return "hello";
}
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name",name);
return "hello-template";
}
}
resources/templates/hello-template.html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
template이 정상적으로 작동할 시 hello! 자리에 'hello ' + ${name}으로 치환된다.
오류 발생
Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' for method parameter type String is not present]
요청된 메소드 피라미터 String 타입 name이 본문에서 보이지 않는다.
이럴 경우, java소스 "name"에 spring이 대입된다.
localhost:8080/hello-mvc가 실행되면, 내장 톰켓 서버를 거친다.
스프링 부트에서는 java/helloController에서 hello-template을 return 해준다.
key : name, value : spring
viewResolver : view를 찾아주고 templates을 연결시켜준다.
변환 된 HTML을 반환해준다.
- 정적 컨텐츠 일 때는 변환되지 않은 값을 반환해주었다.
'공부 및 활동 > 스프링 강의 정리' 카테고리의 다른 글
(회원 관리 예제) 회원 리포지토리 테스트 케이스 작성 (0) | 2021.09.20 |
---|---|
(스프링 웹 개발 기초) API (0) | 2021.09.20 |
(스프링 웹 개발 기초) 정적 컨텐츠 (0) | 2021.09.20 |
(프로젝트 환경설정) 빌드하고 실행하기 (0) | 2021.09.20 |
(프로젝트 환경설정) View 환경설정 (0) | 2021.09.20 |
댓글