디렉터리 구조
HelloController.java
package hello.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") // "hello" 가 들어오면 아래의 메소드를 호출해준다.
public String hello(Model model) {
model.addAttribute("data","hello!!");
return "hello";
}
}
HelloSpringApplicatoin
package hello.hellospring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}
index.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello</title>
</head>
<body>
Hello
<a href="/hello">Hello</a>
</body>
</html>
hello.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello</title>
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}">안녕하세요. 손님</p>
</body>
</html>
동작 환경 그림
컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버 (`viewResolver`) 가 화면을 찾아서 처리한다.
스프링 부트 템플릿엔진 기본 viewName 매핑
`resources:templates/` + {ViewName} + `.html`
참고 : `spring-boot-devtools` 라이브러리를 추가하면 `html` 파일의 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.
인텔리J 컴파일 메뉴 build -> Recompile
(출처 : 김영한님 - 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)
'SpringBoot > 기본' 카테고리의 다른 글
[Springboot] Spring Bean 생성 주기 및 어노테이션 비교 (1) | 2023.05.03 |
---|---|
[SpringBoot] @Scheduled 스케쥴링 적용 방법 (0) | 2023.03.08 |
[Spring 입문] 포트번호 오류 해결 (0) | 2022.12.22 |
[SpringBoot] 라이브러리 살펴보기 (0) | 2022.12.21 |
[SpringBoot] 프로젝트 생성 (0) | 2022.12.21 |