sitelink1 http://fruitdev.tistory.com/146 
sitelink2  
sitelink3  
extra_vars6  

Spring을 통해 프로젝트를 진행할때 가끔씩 view가 없는 페이지를 개발해야 할 때가 있다.

그런 상황이 가장 많이 발생하는것이 프론트 단에서 ajax를 통해 어떠한 페이지를 호출하여 결과값을 json 또는 xml로 리턴하여

해당 프론트단에서 결과를 파싱하여 사용할때가 그러하다.

 

json이나 xml을 생성할때 view를 구성하여 사용할 수도 있지만, spring에서는 @ReponseBody라는 훌륭한 녀석을 제공하니

별도의 view 없이 페이지 생성이 가능하다.

 

하지만 @ReponseBody를 사용하여 개발할때 이 포스트를 보는 사람이라면 공감하겠지만, 사실 한글이 깨지는 문제가 발생한다. 나의 경우에도 한글이 깨지는 문제가 발생하여, 인터넷을 통해 알아낸 정보를 적용하였지만 사실 되는게 있고, 안되는게 있었다. 이는 개발자의 환경이나, 동일 프레임워크 내에서도 버전등의 문제로 충분히 해결이 안될수 있는만큼 누구를 탓할 문제도 아니다.

 

 

일단 내가 한글깨짐을 해결하기 위해 즐겨 처리하는 방법은 크게 2가지 이다. spring3.1 과 3.2에서의 처리방법이 조금 다른데

사실 3.1에서 사용하는 방법을 3.2에서 사용해도 문제는 없으나, 3.2의 방식의 코드가 좀더 간결해 지므로 3.2에서는 3.2 방식을

사용하는게 좋다.

 

 

[Spring 3.1 이하]

ResponseEntity 라는 녀석을 사용하여, 응답 헤더에 Content-Type을 지정하는 방식이다. 

 

@RequestMapping(value = "test.do")

public ResponseEntity<String> testAjax() throws Exception {

     

 

    // 응답헤더 지정

    HttpHeaders resHeaders = new HttpHeaders();

    resHeaders.add("Content-Type", "application/json;charset=UTF-8");

 

     

    // Json 결과값 : {"name": "홍길동","age": 21}

    String jsonResult = "{\"name\": \"홍길동\",\"age\": 21}" ;

     

     

    return new ResponseEntity<String>(jsonResult, resHeaders, HttpStatus.CREATED) ;

}

 

 

[Spring 3.2 이상]

@RequestMapping의 produces 옵션에 Contents-Type을 지정하는 방식이다.

 

@RequestMapping(value = "test.do", produces = "application/json; charset=utf8")

public String testAjax() {

     

    // Json 결과값 : {"name": "홍길동","age": 21}

    String jsonResult = "{\"name\": \"홍길동\",\"age\": 21}" ;

 

    

    return jsonResult ;

}

번호 제목 글쓴이 날짜 조회 수
공지 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) 황제낙엽 2023.12.23 0
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 6
38 [POST] Spring MVC 구조 분석 황제낙엽 2024.01.17 1
37 OAuth 2.0 Resource Server - Spring Security OAuth2.0 황제낙엽 2023.12.27 1
36 [시리즈 강좌] 스프링부트로 웹서비스 구축하기 황제낙엽 2023.07.13 3
» [Spring3.1.1] ResponseBody 한글깨짐 해결법 황제낙엽 2018.08.08 140
34 [Spring3.1.1][4] RestTemplate 한글 문제 황제낙엽 2018.08.08 89
33 [Spring3.1.1][3] RestTemplate 한글 문제 황제낙엽 2018.08.08 237
32 [Spring3.1.1][2] RestTemplate 한글 문제 황제낙엽 2018.08.08 113
31 [Spring3.1.1][1] RestTemplate 한글 문제 황제낙엽 2018.08.08 683
30 NamedParameterJdbcDaoSupport 몇가지 장점 황제낙엽 2007.11.27 101
29 Spring AOP - Pointcut 황제낙엽 2007.10.02 129
28 <spring:checkbox> tip! 황제낙엽 2007.10.01 378
27 스프링 2와 JPA 시작하기 (한글) 황제낙엽 2007.08.27 142
26 Spring 2.0의 XML확장기능 (3) 황제낙엽 2007.08.15 32
25 Spring 2.0의 XML확장기능 (2) 황제낙엽 2007.08.15 73
24 Spring 2.0의 XML확장기능 (1) 황제낙엽 2007.08.15 33
23 스프링의 구조별 기능 설명 황제낙엽 2007.06.26 42
22 자바지기 스프링 프레임웍 아티클 황제낙엽 2007.06.04 54
21 AOP(Aspect Oriented Programming) 황제낙엽 2007.06.03 39
20 Spring MVC 어플리케이션 개발 <12> 간단한 조회 구현 방안 비교 황제낙엽 2007.05.27 31