@ResponseBody 문자 반환
@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음
대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)
실행
http://localhost:8080/hello-string?name=@test@!!
1
2
3
4
5
|
@GetMapping("hello-string")
@ResponseBody //http 바디(직접넣어주겠다)
public String helloString(@RequestParam("name")String name){
return "hello " +name; //hello @test@!!
}
|
cs |
@ResponseBody 를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨
http://localhost:8080/hello-api?name=spring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@GetMapping("hello-api")
@ResponseBody
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;
}
}
|
cs |
@ResponseBody
가 없을경우 ViewResolver 에 템플릿을 찾는다
ResponseBody가 있으면 문자일경우 http 에 문자를 던지고 (StringConverter 작동)
객체 가 있을경우 (기본 Json 디폴트) Json방식으로 데이터를 만들어서 Http 에 응답한다. (JsonConverter 작동)
@ResponseBody 를 사용
HTTP의 BODY에 문자 내용을 직접 반환
viewResolver 대신에 HttpMessageConverter 가 동작
기본 문자처리: StringHttpMessageConverter // public String helloString
기본 객체처리: MappingJackson2HttpMessageConverter // public Hello helloApi
byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
> 참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다. 더 자세한 내용은 스프링 MVC 강의에서 설명하겠다.
'프로그래밍 > SpringMVC_기초' 카테고리의 다른 글
회원관리 예제-2 (Optional) (0) | 2023.10.14 |
---|---|
회원관리 예제 -1 (0) | 2023.10.14 |
MVC와 템플릿 엔진 (0) | 2023.10.13 |
정적 컨텐츠 (0) | 2023.10.13 |
윈도우 스프링부트 빌드 (0) | 2023.10.13 |