resources -> static에 index.html을 만든다(첫 화면).
spring.io의 document에서 정보를 찾을 수 있는 능력 중요!
웹애플리케이션에서 첫번째 진입점이 controller다.
controller에서 리턴 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리.
스프링 부트 템플릿엔진 기본 viewName 매핑
'resources:templates/'+{ViewName}+'.html'
■ 코드 해석
package start.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Hello</title>
</head>
<body>
<p th:text="'안녕하세요.' +${data}">안녕하세요. 손님</p>
</body>
</html>
@GetMapping는 HTTP GET이 요청하는 hello를 hello() 메소드와 연결해준다.
hello.html에서 attribute name이 data를 hello!!로 치환한다.
◇ 동작과정
localhost:8080/hello를 입력하면 내장 톰켓 서버를 거쳐 스프링 컨테이너 안에 있는 helloController에 간다. return이 hello이므로 templates 안에 있는 hello.html을 찾는다. data 값으로 hello!! 출력.
● 참고
'spring-boot-devtools'라이브러리를 추가하면, 'html'파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능함.
인텔리J 컴파일 방법 : apsb build -> Recompile
반응형
'Framework > Spring Boot' 카테고리의 다른 글
스프링 빈과 의존관계 (0) | 2020.12.12 |
---|---|
회원 관리 예제 - 백엔드 개발 (0) | 2020.12.06 |
스프링 웹 개발 기초 (0) | 2020.12.05 |
Build (0) | 2020.12.05 |
프로젝트 생성 (0) | 2020.12.05 |