친절한 개발자
ajax로 한글데이터 처리하기 본문
비지니스 로직에서 열심히 데이터를 생성해서 view 로 데이터를 넘길때
비동기처리를 위해 jajax를 사용한과정은 다음과 같다.
1. jsp에서 ajax를 호출한다. 이때 처리결과의 양이 좀 많을경우 적절한 로딩 이미지를보여주기 위해
ajax의 옵션을 사용한다.
2. ajajx에서 - controller - service - dao 의 과정을 거쳐 전달받은 데이터
이때 데이터는 단순한 string일 수도있지만 대부분 Object 즉 객체이다.
com.fasterxml.jackson.databind.ObjectMapper 를 사용한다.
pom에 관련 라이브러리를 추가한다.
Aja로 한글을 전달할때 UTF-8환경에서 코딩이 되어 있다면 RequestMapping의 produces를 설정한다.
3. 객체를 Json 형식의 String으로 변환한다.
4. jsp에서 전달받은 Json String에서 필요한 부분을 추출한다.
1. 4.
$.ajax({
url : "test",
type : "get",
success : function(datavo) {
var htmlCode = "";
$.each(JSON.parse(datavo),function(i, v){
htmlCode += v.gyoung_ju_il +" " + v.gyoung_ju_bun_ho+" "
+ v.sun_wi +" " + v.ma_beon +" " + v.ma_myeong + "<br>";
});
$("#content1").html(htmlCode);
},
complete : function() {
$("#loading-indicator").hide();
},
beforeSend : function() {
$("#loading-indicator").show();
},
error : function(e) {
alert("readanswer : " + e.message);
},
});
2. 3
@RequestMapping(value = "/test", produces = "application/text; charset=utf8")
public @ResponseBody String bootstrapTest(){
//----- 로직 -------
//list에 데이터가 담겨있다.
ObjectMapper mapper = new ObjectMapper();
String jsondata = null;
try {
jsondata = mapper.writeValueAsString(list);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return jsondata;
}
pom.xml에 추가한다.
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
json으로 한글처리할때 produces = "application/text; charset=utf8"
'개발일지' 카테고리의 다른 글
eclipse delete webapp lib에 위치한 jar delete and commit (0) | 2016.06.28 |
---|---|
mysql connector 6.0.2 사용시 Could not get JDBC Connection 에러 발생 (1) | 2016.06.20 |
Mybatis java.lang.NoClassDefFoundError: org/apache/ibatis/cursor/Cursor (0) | 2016.06.17 |
Apach common utils - FileUtils - (0) | 2016.06.10 |
전자정부 1.0 에서 3.0으로 업그레이드하기 (0) | 2016.06.09 |