spring/Spring inf

Controller에 @ResponseBody 사용하기[Spring mvc]

jojelly 2022. 3. 2. 05:35
반응형

[1]

기본은 MVC는 Model view Controller로 이루어진다.

 

작확인:

1. Controller에서 model에 data값으로 데이터!라는 문자를 넣어준다.

2. hello라는 이름을 가진 view(template)로 리턴

3. date라는 이름을 가진 데이터!값이 합쳐저 안녕하세요 데이터!가 화면에 출력된다.

 

 

 

[2]

@RequstParam을 이용해 값을 가져오기

동작확인:

1. Controller를 통해 hello-mvc주소 요청이오면 hellomvc메소드가 실행된다.

2. @RequstParam을 통해 name값을 받고 이를 model에 name이라는 이름으로 넣어  hello=template에 리턴한다.

3. view에서는 url에 나온대로 name=조젤리입니다가 ${name}에 들어가면서 안녕하세요 조젤리입니다 가 출력된다. 

 

 

+(required = flase같은 경우는 name값이 들어오지 않으면 오류가 발생하는걸 방지하는걸로 required의 기본값인 true를 false로 변경해주었다. )

 

 

 

 

[3]

template를 거치지 않고 바로 값을 리턴하기

1. hello-string으로 요청이 들어오면 @RequestParam값을 model에 넣지않고 바로 return에 넣어준다. 

(@Responsebody이용) ->HTTP의 BODY에 직접 문자내용을 반환

2. 그러면 view Resolver대신 HttpMessageConverter가 동작한다.

  • 기본 문자처리: StringHttpMessageConverter
  • 기본 객체처리: MappingJackson2HttpMessageConverter

결과 바로 hello 조젤리 출력으로 나오며 소스코드로 보아도 view구조가 아닌 return값 그대로 들어온다. 

 

[4]

이번엔 객체를 return하겠다

 

1. hello-api로 요청이 들어오면 RequestParam에 name을 받는다. 

2. Hello 타입의 hello2라는 객체를 생성

3. setter를 통해 RequestParam 에 들어온 name을 hello2의 name에 지정시킨 후 리턴

4. 반환방식은 jason형식으로 반환된다. 

반응형

'spring > Spring inf' 카테고리의 다른 글

컨트롤러 메서드에 @RequsteParam @required 쓰기  (0) 2022.03.01