[Spring/입문] 스프링 View 환경설정

2024. 4. 28. 18:41·Spring/MVC

View 환경설정


Welcome Page 만들기

  • resources/static/index.html에 다음 파일 생성
<!DOCTYPE HTML>
<html>
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
  • 스프링 부트가 제공하는 Welcome Page 기능
    • static/index.html 을 올려두면 Welcome page 기능을 제공한다.

thymeleaf 템플릿 엔진

Controller 만들기

  • hello.hellospring 패키지 안에 controller 패키지를 만들고 controller 클래스를 생성
@Controller
public class HelloController {
    @GetMapping("hello")
    public String hello(Model model) {
        model.addAttribute("data", "hello!!");
        return "hello";
    }
}

thymeleaf 템플릿 엔진을 사용하는 html 파일 만들기

  • resources/templates/hello.html 생성
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>

작동 원리

  • @Getmapping : HTTP Get
    • http url을 입력하는 것을 Get 방식이라고 함
    • http://localhost:8080/hello  에서 /hello를 던지면 Spring Boot의 Tomcat 서버에서 슬롯이 Hello임을 확인하고 Spring에게 질의
    • Spring의 Hello Controller에 Getmapping("Hello")가 있으므로 url에 매칭되어 메서드가 실행된다.
    • Spring이 만들어 전달한 model에 "data"(key), "hello!!!"(value) attribute를 Add
    • 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.
      • 스프링 부트 템플릿엔진 기본 viewName 매핑
      • resources:templates/ +{ViewName}+ .html
    • Thymeleaf 템플릿 엔진이 key값에 해당하는 Value를 꺼내서 출력해줌
    • 참고: spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.

빌드하고 실행하기

콘솔로 이동

1. ./gradlew build
2. cd build/libs
3. java -jar hello-spring-0.0.1-SNAPSHOT.jar

4. 실행확인

 

참조) 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강좌 (인프런 김영한)

'Spring > MVC' 카테고리의 다른 글

[Spring/입문] 06. 스프링 DB 접근 기술  (0) 2024.05.13
[Spring/입문] 회원 관리 예제 - 웹 MVC 개발  (0) 2024.04.29
[Spring/입문] 스프링 빈과 의존관계  (0) 2024.04.29
[Spring/입문] 회원 관리 예제 - 백엔드 개발  (0) 2024.04.29
[Spring/입문] 스프링 웹 개발 기초  (0) 2024.04.28
'Spring/MVC' 카테고리의 다른 글
  • [Spring/입문] 회원 관리 예제 - 웹 MVC 개발
  • [Spring/입문] 스프링 빈과 의존관계
  • [Spring/입문] 회원 관리 예제 - 백엔드 개발
  • [Spring/입문] 스프링 웹 개발 기초
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 (452) N
      • Software Development (27) N
        • Performance (0)
        • TroubleShooting (1)
        • Refactoring (0)
        • Test (8) N
        • Code Style, Convetion (0)
        • DDD (0)
        • Software Engineering (18)
      • Java (71)
        • Basic (5)
        • Core (21)
        • Collection (7)
        • 멀티스레드&동시성 (13)
        • IO, Network (8)
        • Reflection, Annotation (3)
        • Modern Java(8~) (12)
        • JVM (2)
      • Spring (53) N
        • Framework (12)
        • MVC (23)
        • Transaction (3) N
        • AOP (11) N
        • Boot (0)
        • AI (0)
      • DB Access (1)
        • Jdbc (1)
        • JdbcTemplate (0)
        • JPA (14)
        • Spring Data JPA (0)
        • QueryDSL (0)
      • Computer Science (125)
        • Data Structure (27)
        • OS (14)
        • Database (10)
        • Network (21)
        • 컴퓨터구조 (1)
        • 시스템 프로그래밍 (23)
        • Algorithm (29)
      • HTTP (8)
      • Infra (1)
        • Docker (1)
      • 프로그래밍언어론 (15)
      • Programming Language(Sub) (77) N
        • Kotlin (1) N
        • Python (25)
        • C++ (51)
        • JavaScript (0)
      • FE (11)
        • HTML (1)
        • CSS (9)
        • React (0)
        • Application (1)
      • Unix_Linux (0)
        • Common (0)
      • PS (13)
        • BOJ (7)
        • Tip (3)
        • 프로그래머스 (0)
        • CodeForce (0)
      • Book Review (4)
        • Clean Code (4)
      • Math (3)
        • Linear Algebra (3)
      • AI (7)
        • DL (0)
        • ML (0)
        • DA (0)
        • Concepts (7)
      • 프리코스 (4)
      • Project Review (6)
      • LegacyPosts (11)
      • 모니터 (0)
      • Diary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
lumana
[Spring/입문] 스프링 View 환경설정
상단으로

티스토리툴바