안녕하세요. 스프링부트 @Controller에 대한 복붙노트입니다.
1탄은 GET요청을 받아 View로 이동하는 것에 대한 복붙노트입니다.
@Controller
스프링부트(Springboot)에서 HTTP 요청은 @Controller 어노테이션으로 처리합니다.
HTTP GET 요청 → View 이동
@GetMapping 어노테이션을 통하여 [HTTP GET 요청]을 받습니다.
HelloWorldController는 View 이름을 반환하여 /hello에 대한 GET 요청을 처리합니다.
View는 HTML 콘텐츠를 렌더링 하는 역할을 합니다.
즉, /hello에 대한 GET 요청이 오면 hello 페이지로 이동하고, 사용자에게 렌더링 된 HTML 페이지를 보여줍니다.
HelloWorldController.java
@Controller
public class HelloWorldController {
@GetMapping("/hello")
public String helloWorld(@RequestParam(name="name", required=false, default="익명") String name, Model Model) {
model.addAttribute("name", name);
return "pages/hello";
}
}
}
@RequestParam을 통하여 /hello? name=test와 같은 요청이 있을 때 ? 뒤에 query string을 받을 수 있습니다.
즉 name 파라미터에 test 값이 바인딩 됩니다.
[1라인] : Class 위에 @Controller 선언
[3라인] : Method 위에 @GetMapping 선언 /hello로 들어온 HTTP GET 요청 처리
[4라인] : @RequestParam으로 Query String 가져옮. name 파라미터 값을 가져오며 default 값은 익명, 필수는 아님을 나타냅니다.
[5라인] : Model에 name 파라미터가 추가됩니다. name에는 test가 들어있습니다.
[6라인] : View name으로 hello.html을 바인딩 합니다.
hello.html (스프링 부트 기본인 Thymeleaf 타임리프 사용)
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>HelloWorld Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${name} + '님 방문해주셔서 감사합니다!'" />
</body>
</html>
Model에 전달된 name 파라미터 값을 ${name}의 형태로 받을 수 있습니다.
/hello? name=test의 형태로 요청이 왔을 경우
안녕하세요. test님 방문해주셔서 감사합니다!라고 출력됩니다.
'프로그래밍 > SpringFramework' 카테고리의 다른 글
스프링 프레임워크 @Scheduled 사용법 (0) | 2021.04.19 |
---|---|
Springboot MariaDB Mybatis 사용법 (0) | 2021.04.15 |