본문 바로가기

프로그래밍/SpringFramework

스프링부트 @Controller 1

반응형

안녕하세요. 스프링부트 @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님 방문해주셔서 감사합니다!라고 출력됩니다.

 

 

반응형