본문 바로가기
Framework/Spring

[Spring] @ResponseBody 한글깨짐 해결방법 / Spring 한글깨짐

by 나비와꽃기린 2016. 7. 1.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

결과값을 @ResponseBodyreturn할 때 브라우저에서 결과값 중 한글이 다 깨지는 현상이 발생했다.

해결방법은 스프링 설정 파일에 캐릭터셋에 관련된 설정을 추가해 주면 된다.

 

필자는 스프링 3.1 이상의 버전을 사용했다.

(스프링 3.0 3.1 버전 이상에서는 설정이 조금 달라졌다고 한다.)

 

기존 스프링 3.0 버전에서는

StringHttpMessageConverter class 태그 위에 AnnotationMethodHandlerAdapter로 감싸줘야 했었다.

하지만 3.1 버전 이상부터는 이 클래스가 Deprecated 되었기 때문에 방법이 조금 달라졌다.

( ? Controller의 요청이 메소드 단위로 세분화 되면서 기존 방식에 문제가 생겼기 때문이란다.)

 

쨌든, 3.1이상에서부터는 Spring 설정 파일에 다음과 같이 기술하여 처리한다.

<mvc:annotation-driven>
	 <mvc:message-converters>
		 <!-- @ResponseBody로 String 처리할때 한글처리 -->
		 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
			 <property name="supportedMediaTypes">
				 <list>
					 <value>text/html;charset=UTF-8</value>
				 </list>
			 </property>
		 </bean>
	 </mvc:message-converters>
 </mvc:annotation-driven>