② MVC와 템플릿 엔진으로 웹 브라우저에 띄우기

기록하는 용도·2024년 10월 24일

Spring

목록 보기
5/8

html 파일을 만들기

타임리프를 사용한 것을 볼 수 있다.
'> <' 안에 있는 "hello! empty 가 값을 넣어주면 타임리프를 사용한 hello + ${name} 으로 치환된다.

@GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";
    }

컨트롤러에서 메서드 생성

@GetMapping("hello-mvc")

http GET 방식으로 파라미터를 넘길 수 있음

public String helloMvc(@RequestParam("name") String name, Model model)

@RequestParam 어노테이션은 스프링 부트에서 제공하는 기능으로 http 요청 파라미터 값을 받는다.
기본적으로 필수값이기 때문에 값을 전달받지 않으면 에러 발생 (required = true 가 기본)

2024-10-24T20:19:51.711+09:00  WARN 11616 --- [hello-spring] [nio-9090-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'name' for method parameter type String is not present]
http://localhost:9090/hello-mvc?name=arcobaleno

get 방식으로 파라미터 값을 넘겨주고 있다.

public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";

컨트롤러 다시보면, http 요청 파라미터 값을 name으로 받을거고, 그것을 model에 name이라는 이름으로 넘겨주고, hello-template이라는 html을 찾아서 웹 브라우저에서 보여준다.

결론
1. localhost:9090/hello-mvc 라고 검색하면, 스프링이 실행되면서 같이 실행되는 내장된 톰캣 서버는 컨트롤러안에 매핑되는 메서드를 찾음 (@GetMapping("hello-mvc") 발견!)
2. 그 컨트롤러를 살펴보니까 @RequestParam 어노테이션으로 파라미터를 http 요청해서 받고 있고, 그 값을 name(:key) 이라는 이름으로 넘겨줄거고(arcobaleno:value) 문자를 반환(return)하는 것을 확인함
3. 그렇다면 일치하는 html 파일로 가서 요청 url 에서 name을 받은것과 함께 타임리프(화면단)에서 템플릿 엔진이 렌더링을 해서 요청을 처리함(변환)
4. 브라우저로 넘겨줌

0개의 댓글