BackEnd/Java Spring

Java Spring - @RequestBody, @ResponseBody 정리

최데브 2020. 4. 14. 01:30

1. @RequestBody 

 

ajax 를 사용할때 같이 쓰는데 이때

JSON.stringify 함수를 이용하여 데이터를 보내고

contentType을 "application/json"으로 설정해주어야 한다.

 

즉 ajax로 보낸 json 객체의 정보를 스프링에서 받아올때 사용한다.

 

@Controller
public class MainController {
	
    @ResponseBody
    @RequestMapping("/ex")
    public void init(@RequestBody User user) {
        
    	user.getName();
        user.getAge();
    }
}

스프링에서는 이렇게 받을 수 있다. 

이때 User 클래스의 프로퍼티는 전송된 JSON 객체와 프로퍼티명이 일치해야하며 getter와 setter가 있어야한다.

 

 

2. @ResponseBody

 

위와는 반대로 json 객체의 정보를 받는게 아닌 ajax에 전달해줄때 사용한다.

 

@Controller
public class MainController {
	
    @ResponseBody
    @RequestMapping("/test")
    public HashMap<String, Object> init(@RequestBody HashMap<String, Object> map) {
    	
        map.put("phone", "0000-0000");
    	return map;
        // {"name": "kim", "age": 30, "phone": "0000-0000"}가 data로 바인딩
    }
}

 

반응형