반응형
12-24 20:16
Today
Total
«   2024/12   »
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 31
관리 메뉴

개발하는 고라니

[Spring MVC] @RestController String의 한글 처리 본문

Framework/Spring

[Spring MVC] @RestController String의 한글 처리

조용한고라니 2020. 12. 8. 01:16
반응형

# 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!";
	}
}

/api/data URL을 요청했을 때 문자열이 잘 반환되었다.

@RestController("apiController")
@RequestMapping("/api")
public class APIController {

	@GetMapping("/data")
	public String data() {
		
		return "문자열 Data!";
	}
}

"문자열 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을 요청해보자.

한글을 포함한 문자열이 정확하게 출력되는 것을 확인할 수 있다.

 

참고 : 뉴렉쳐www.newlecture.com/customer/notice/1022

반응형
Comments