반응형
12-24 20:16
- Today
- Total
Link
개발하는 고라니
[Spring MVC] @RestController String의 한글 처리 본문
반응형
# RestController
- 일반적인 Controller의 역할처럼 문서를 만들어 제공하는 것이 아닌, 주로 데이터(String, JSON 등)를 만들어서 제공하는 Controller
- 프로젝트를 진행하다 보면 문서를 만들어서 보여줄 것이 아닌 데이터를 줘야하는 경우가 있는데 그럴 때 @RestController 어노테이션을 사용해 컨트롤러를 만든다.
- @ResponseBody를 사용하는 것과 같은 효과를 나타낸다.
- 문자열을 반환할 때 영어는 정상적으로 잘 처리하지만, 한글은 깨져서 나타난다.
# String을 반환하는 @RestController 예
* @RestController("apiController") 처럼 ()안에 명칭을 줌으로써 Spring에게 apiController라는 이름으로 빈을 만들어달라고 할 수 있다.
@RestController("apiController")
@RequestMapping("/api")
public class APIController {
@GetMapping("/data")
public String data() {
return "String Data!";
}
}
@RestController("apiController")
@RequestMapping("/api")
public class APIController {
@GetMapping("/data")
public String data() {
return "문자열 Data!";
}
}
# 한글 깨짐 처리
1. Spring MVC의 servlet-contex.xml을 열어서 <annotation-driven />을 수정한다.
<annotation-driven>
<message-converters>
<beans:bean class="org.springframework.http.converter.StringHttpMessageConverter">
<beans:property name="supportedMediaTypes">
<beans:list>
<beans:value>text/html;charset=UTF-8</beans:value>
</beans:list>
</beans:property>
</beans:bean>
</message-converters>
</annotation-driven>
- 위 내용은 Response(응답)의 결과물로 문자열을 줄 때, 즉 ResponseBody형식으로 문자열을 반환할 때 메세지를 변환해주는 기능을 담당한다.
- converters 안에 인코딩하는 것만 넣었지만, 다양한 것을 넣을 수 있다.
-> 이를 추가하고 다시 URL을 요청해보자.
한글을 포함한 문자열이 정확하게 출력되는 것을 확인할 수 있다.
반응형
'Framework > Spring' 카테고리의 다른 글
[Spring] 크롤링된 이미지 다운로드 (0) | 2020.12.16 |
---|---|
[Spring] 크롤링 해온 정보 DB에 저장 (0) | 2020.12.14 |
[Spring MVC] JSON 출력하기 (0) | 2020.12.08 |
[Spring MVC] Web Socket(웹 소켓)과 Chatting(채팅) (11) | 2020.12.03 |
[Spring] 메일 송신 (0) | 2020.12.02 |
Comments