Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- array
- 개념
- JVM
- web.xml
- html
- 암호화
- 함수
- input
- eGov
- javascript
- 정의
- mybatis
- controller
- eGovFramework
- POI
- jsp
- sql
- TO_DATE
- 오류
- Ajax
- jQuery
- 과정평가형
- spring
- was
- json
- Oracle
- select
- Java
- 태그
- CSS
Archives
- Today
- Total
web developer
[java] @Controller에서 데이터를 반환하는 방법 / @ResponseBody, ResponseEntity<> 본문
Language/Java
[java] @Controller에서 데이터를 반환하는 방법 / @ResponseBody, ResponseEntity<>
trueman 2022. 4. 14. 15:41728x90
728x90
일반적인 @Controller에서 View 반환
@Controller에서 View뿐만 아니라 데이터(JSON이나 XML)를 반환시킬 수도 있다.
@Controller에서 데이터를 반환시키는 방법에는 @Responsebody와 ResponseEntity<>가 있다.
@ResponseBody
@ResponseBody : @Controller에서 JSON이나 XML같은 데이터를 반환
@ResponseBody를 사용한 메소드에서 리턴되는 값은 MessageConverter에서 변환되어 HTTP Response Body에 쓰여진다. MessageConverter에는 다양한 종류가 있는데 메소드에서 리턴되는 데이터 타입에 따라 MessageConverter가 결정된다.
1) 반환을 VO객체로 한 예제
@GetMapping("/example")
@ResponseBody
public SampleDTO example() {
SampleDTO dto = new SampleDTO();
dto.setAge(24);
dto.setName("mangdo");
return dto; //스프링이 자동으로 JSON타입으로 객체를 반환해서 전달한다.
}
2) 반환을 Map으로 한 예제
@GetMapping("/example")
@ResponseBody
public Map<String, Object> example() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("age", 24);
map.put("name", "mangdo");
return map; //스프링이 자동으로 JSON타입으로 반환해서 전달한다.
}
ResponseEntity<>
ResponseEntity<> : HTTP 헤더에 Content-Type : json을 명시하면서 다른 작업도 해주고 싶을때
Spring 어노테이션이 아닌 직접 HTTP 헤더를 다루는 경우이다.
@ResponseBody보다 번거롭지만 보다 추가적인 작업을 할 수 있다.
데이터타입을 JSON으로 사용했다는 것을 알려주려면 HTTP 헤더에 contents-type을 명시해야한다
@GetMapping("/example")
public ResponseEntity<String> example(){
// msg = {"name" : "홍길동"}
String msg = "{ \" name \": \" 홍길동 \" }";
HttpHeaders header = new HttpHeaders();
header.add("Content-Type", "application/json; charset=UTF-8");
return new ResponseEntity<>(msg,header,HttpStatus.OK);
}
728x90
728x90
'Language > Java' 카테고리의 다른 글
[java] split(), toString() / string.split is not a function (error) 원인 및 해결방안 (2) | 2022.04.20 |
---|---|
Contents Manatement System(콘텐츠 관리 시스템) (1) | 2022.04.20 |
[java] oracle 11g se download (0) | 2022.03.30 |
[java] Java Bean vs Spring Bean (2) | 2022.01.20 |
[java] 웹 어플리케이션(Web Application) 정의 (0) | 2022.01.19 |