Spring Controller

구잉·2021년 11월 8일

Spring Controller란?

Spring MVC(Model View Controller)에서 C를 해당한다
사용자의 요청을 처리하여 지정된 뷰에 모델 객체를 넘겨준다

정적 컨텐츠

@Controller
public class HelloController {
    @GetMapping("hello") // /hello 들어올 때 호출되는 메소드
    public String hello(Model model){
        model.addAttribute("data", "hello!!");
        return "hello"; //hello.html로 랜더링
    }
}

hello경로로 진입하면 hello.html에 랜더링하여
data 변수에 "hello!!" 준다

MVC

@Controller
public class HelloController {
 @GetMapping("hello-mvc")
    public String hellomvc(@RequestParam(value = "name") String name, Model model){ //파라미터를 받음
       model.addAttribute("name", name);
        return "hello_template";
    }
}

hello-mvc경로 뒤에 name 변수 값을 넣어주면(ex. ?name=Spring)
hello_template.html에 랜더링하여 name 변수에 작성한 값을 준다

API

@Controller
public class HelloController {
//1. String 반환
    @GetMapping("hello-string")
    @ResponseBody //http 통신 body부분에 직접 return값 입력
    public String helloString(@RequestParam("name") String name){
        return "hello " + name; //데이터를 그대로 가져옴
    }

//2. 객체 반환
    @GetMapping("hello-api")
    @ResponseBody //http 통신 body부분에 직접 return값이 json 형태(객체이므로)로 반환 
    public Hello helloApi(@RequestParam("name") String name){
        Hello hello = new Hello();
        hello.setName(name);
        return hello;
    }
    
    static class Hello{
        private String name;

        public String getName(){
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}
  1. hello-string 경로에 뒤에 name 변수 값을 넣어주면
    return 값을 그대로 웹에 가져온다

  2. hello-api 경로 뒤에 name 변수 값을 넣어주면
    Hello 객체를 만들어서 json형태로 return한다

profile
시작을 두려워하지말자

0개의 댓글