Spring/CONTROLLER

Controller >> ViewResolver

WS.GI 2023. 11. 28. 10:29
여러분의 후원은 큰 힘이 됩니다. 기업은행 35611080101018
반응형

+Txt 

View 

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Good Thymes Virtual Grocery</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'J !'+ ${data}">안녕</p>
</body>
</html>

 

Controller 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
    @GetMapping("hello")
    public String hello (Model model) {
        model.addAttribute("data","hello!!"); // key : data | value : hello!!
        return "hello";
    }
}


++ 파라미터

View

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Good Thymes Virtual Grocery</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'J !'+ ${name}">NAME</p>
</body>
</html>

 

Controller 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {
    @GetMapping("hello-Mvc")
    public String helloMvc (@RequestParam("name") String name, Model model) {
        model.addAttribute("name",name); // key : data | value : hello!!
        return "hello-template";
    }
}

 

Controller -> ViewResolver 


브라우저 요청에서의 스프링 우선순위 - Find

 

1. controller 

2. resources / static 


 

Controller 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @GetMapping("helloA")
    @ResponseBody // HTML -> Body에 직접 넣겠다.
    public String helloString (@RequestParam("name") String name) {
        return "hello"+name;
    }

}


Get Set 단축키 : Alt + Ins 

 static class Hello {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
}

 

Json 반환. 

    @GetMapping("hello-api")
    @ResponseBody // HTML -> Body에 직접 넣겠다.
    public Hello helloApi ( @RequestParam("name") String name ) {
        Hello hello = new Hello();
        hello.setName(name);
        return hello;
    }

 

Controller -> HttpMessageConverter 

                      문자 : StringHttpMessageConverter 

                      객체 : MappingJackson2HttpMessageConverter

@ResponseBody  사용 시 ViewResolver 대신 위와 같이  동작한다.

  

 

반응형