스프링프로젝트, Ajax에서 한글 깨짐 현상

얼마 전에 신입사원이 입사하면서, 업무 시스템에서 신규 담당자 추가 작업이 필요하게 되었다.


다만 늘 그렇듯이 귀찮은 작업은 하드코딩으로 넣어두었더니, 

신규 담당자가 발생할때마다 전체 jsp 파일에 일일이 이름을 새기는 작업을 해야만했다. 


내가 비석에 이름 새겨넣는 석공도 아니고... 


결국 귀찮음을 이겨내고 디비에 신규 가입자가 발생할때마다

모든 담당자 설정 박스에 동적으로 데이터를 가져오도록 수정을 했다.


<스크립트파일>

   $.ajax({

    url : "/ecommerce/weekreport/getUserList",

    type : "GET",

    cache : false,

    async : false,      

    success : function(data) {

     var obj = JSON.parse(data);

     $.each(obj,function(key,value){

      $("#userselect").append("<option value='" + value.user_name + "'> " + value.user_name + "</option>");     

     });

    },

    error : function(xhr, status, error) {

     alert(error);

    }

   });


<컨트롤러>

  @RequestMapping(value = "/weekreport/getUserList")

public @ResponseBody String getUserList(HttpSession session) {


    JSONArray array = new JSONArray(weekreportService.getUserList());

   String jsonString = array.toString();

   return jsonString;

}


콘솔창에 찍어보니 모든 값을 제대로 가져온다.


가져온 값을 이제 화면에서 뿌려주기만 하면 되는데.....


 


???..... 모든 담당자 이름이 ??? 으로 뜬다.


결론부터 말하자면, 


@RequestMapping(value = "/weekreport/getUserList", produces = "application/text; charset=utf8")


produces를 통해 명시적으로 문자셋 설정을 해두니 한글깨짐 현상이 발생하지 않는다.


구글 검색과정에서 보니, 생각보다 같은 오류로 당황하는 개발자들이 많은 것 같아 기록해 둔다.



근황

너무나 정신없고 시끄러운 나날들이 어느정도 마무리되고 있다.대학원 입학, 중간고사, 1년간 끌어온 개발 프로젝트의 마감, 중국 회사와의 끝모를 사투.... 3월부터 두 달간 휘몰아 쳤던 일정들이 끝을 보이면서 이제 좀 평정심을 되찾고 있다.언제나 나는 일을 먼저 저지르고, 그걸 수습하는 과정에서 성장하는 인생이라.. 일단 최선을 다해 수습중이다... » 내용보기

동적쿼리에 관하여

이번 연휴 기간동안 깨달은 바가 있어 오랜만에 블로그에 글을 올린다.동적 쿼리? 그냥 변수만 던져줘서 변수에 맞게 조회하면 그게 동적 쿼리 아니야?너무나 무지한 소리를 내뱉고 퇴근한 게 지난 금요일이었다.동적 쿼리는 변수 뿐만이 아니라 쿼리문 자체가 유동적으로 적용될 수 있어야 한다.우선 그전에 변수 관련해서 한 가지 배운 점은, 변수... » 내용보기

CyclicRotation

오늘의 문제.특정 값이 입력된 배열을 N번 오른쪽으로 이동 시킨 후,그 결과가 담긴 배열을 구하는 문제.예를 들어, [1,2,3,4,5] 라는 배열을 3번 이동하게 되면결과값으로 [3,4,5,1,2] 를 출력하면 된다.이 문제는 코드 자체를 구현하는 것보다 개념적인 방법을 떠올리는데 많은 시간이 걸렸다.이것은 바꿔말하면, 나의 수학적 기초가 약... » 내용보기

OddOccurrencesInArray

오늘은 두 번째 Codility 문제에 도전하였다.중국쪽 회사에 개발환경 테스트 관련 영어메일을 보내느라 멘붕이었지만.. 어쨌든 도전..문제는 이렇다.입력된 배열의 값 중에 중복되지 않는 값을 찾아내는 것.예를 들어[9, 3, 9, 3, 9, 7, 9] 라는 값이 입력되면짝꿍이 없는 7을 정답으로 제출하면 된다.나의 계획은입력된 값을 비교하여 같으면 0... » 내용보기


skin by mater