1. Welcome Page 만들기
(파일 경로: src/main/resources/static/index.html)
아래의 html을 구성해서 간단한 Welcome Page를 만들어보자.
<!DOCTYPE HTML>
<html lang="ko">
<head>
<title>Greeting</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">Visit Hello Page</a>
</body>
</html>
2. MVC 패턴을 이용하여 특정 경로로 들어오는 GET 요청 처리하는 컨트롤러 만들기
(파일 경로: src/main/java/hello_spring/controller/HelloController)
package hello.hello_spring.controller;
import org.springframework.ui.Model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
model.addAttribute("data", "hello!111!");
return "hello";
}
}
코드를 하나씩 해석보자.
package hello.hello_spring.controller;
-> hello.hello_spring.controller 패키지에 속한 클래스임을 선언합니다.
import org.springframework.ui.Model;
-> Model 객체를 사용하기 위해 Spring의 Model 클래스를 가져옵니다.
import org.springframework.stereotype.Controller;
-> @Controller 어노테이션을 사용하기 위해 Spring의 Controller 클래스를 가져옵니다.
import org.springframework.web.bind.annotation.GetMapping;
-> @GetMapping 어노테이션을 사용하기 위해 Spring의 GetMapping 클래스를 가져옵니다.
@Controller
-> 이 클래스를 Spring MVC의 컨트롤러로 지정합니다.
public class HelloController {
-> HelloController라는 이름의 클래스를 정의합니다.
@GetMapping("hello")
-> /hello 경로로 들어오는 HTTP GET 요청을 처리할 메서드를 지정합니다
public String hello(Model model){
-> hello라는 메서드를 정의하며, Model 객체를 매개변수로 받아 뷰에 데이터를 전달할 수 있게 합니다.
model.addAttribute("data", "hello!111!");
-> 뷰에 전달할 데이터로 "hello!111!"을 "data"라는 이름으로 모델에 추가합니다.
return "hello";
-> hello라는 이름의 뷰(hello.html)를 반환하여, 해당 뷰를 렌더링하도록 합니다.
3. hello Page 만들기
(파일 경로: src/main/resources/templetes/hello.html)
아래의 html을 구성해서 간단한 hello Page를 만들어보자.
<!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>
'Server > Spring' 카테고리의 다른 글
회원관리 - 백엔드 개발) 3. 회원 서비스 개발하기 (0) | 2024.08.24 |
---|---|
회원관리 - 백엔드 개발) 2. 각각의 repository 메소드 테스트 하기 (0) | 2024.08.24 |
회원관리 - 백엔드 개발) 1. 회원 도메인과 Repository 만들기 (0) | 2024.08.24 |
JSON 데이터를 직접 반환하여, 템플릿을 거치지 않고 API 응답을 처리하기(API 활용하여 개체 JSON으로 반환하기) (0) | 2024.08.24 |
HTML 페이지 렌더링 시 요청받은 데이터 포함하기(매개변수를 MVC패턴으로 전달해 렌더링하기) (0) | 2024.08.24 |