[꼼꼼한 개발자] 꼼코더
06. 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - [프로젝트 환경설정] - View 환경설정, Page 만들기(정적, 동적) 본문
Spring/Spring 입문
06. 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - [프로젝트 환경설정] - View 환경설정, Page 만들기(정적, 동적)
꼼코더 2022. 12. 27. 16:38반응형
🔨 정적 페이지 만들기
- resources/static/경로에 index.html을 만들어 놓으면 welcome page로 인식한다.
💡Welcome Page란? 💡 정적페이지란?
도메인만 누르고 들어올 때의 첫 화면 파일을 던저주면 그 파일을 그대로 보여주는 페이지.
- index.html파일 안에 코드를 작성한다.
2. 서버 재시작(코드수정 시 필수 작업) 후 브라우저를 새로고침 하여 확인한다.
🔨 동적 페이지 만들기
- hello.hellospring 아래에 controller라는 패키지를 생성 > controller 패키지 안에 HelloController(자바 클래스)파일을 생성
💡 컨트롤러란? web application에 첫 진입점을 말한다. @Controller 어노테이션 작성을 해줘야 한다.
2. 코드작성
- 컨트롤러는 @Controller 를 붙여줘야한다.
- @GetMapping이란
- url에 /hello로 요청이 들어오면 해당 코드르 실행
3. resources/templates 에 hello.html을 만들어 준다.
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org"> //templates 엔진으로써 thymeleaf문법을 사용할 수 있게 선언한다.
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p> // th는 thymleaf의 약자이다.
</body>
</html>
🖌 그림 설명
- 스프링 부트에서는 톰캣이라는 웹 서버를 내장하고 있다.
- 웹 브라우저에서 localhost:8080/hello라고 던지면 톰캣에서 localhost:8080/hello를 받고 어? /hello네! 하면서 스프링에 던지고.
- 스프링속 HelloController.java(@Controller가 있어 컨트롤러로 인식)속 소스중에 @GetMapping(”hello”)에 url과 매칭된다.
- 그럼 해당 메소드가 실행이 되는데 스프링이 model(모델)이라는걸 만들어서 넣어준다.
- 이 모델에 addAttribute에 키와 값을 넣어준다. > model(data:hello!) 그리고 리턴 한다.
- 리턴의 이름은 “hello” 이 이름은 templates 안에 hello를 찾아서 랜더링(실행)한다.
(이 작업은 Thymeleaf 템플릿 엔진이 한다 스프링이 이것들을 다 세팅해줬다. ) - 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.
- 뷰 리졸버 : 스프링 부트 템플릿엔진
참고: spring-boot-devtools 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.
🙋🏻♂️ Spring관련 궁금한 지식을 어떻게 찾을까?
1. https://docs.spring.io 에 접속
2. Projects > Spring Boot 클릭
3. LEARN > 현재 Spring 버전의 DOC 클릭(본인은 2.7.0)
4. 왼쪽 여러 가지 항목들에 접속하고
5. Command(⌘) + f 단축키를 통하여 원하는 정보를 검색한다.
thymeleaf 공식 사이트: https://www.thymeleaf.org/
스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/
스프링부트 매뉴얼:https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/ html/spring-boot-features.html#boot-features-spring-mvc-template-engines
위 자료는 김영한 님의 ‘스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술’ 강의를 참고하여 작성하였습니다. https://www.inflearn.com/course/스프링-입문-스프링부트/dashboard
'Spring > Spring 입문' 카테고리의 다른 글
Comments