sitelink1 | http://javacan.tistory.com/160 |
---|---|
sitelink2 | |
sitelink3 | http://1 |
extra_vars4 | ko |
extra_vars5 | |
extra_vars6 | sitelink1 |
1. web.xml 파일의 DwrServlet에 publishContainerAs 초기화 파라미터 값 설정
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>publishContainerAs</param-name>
<param-value>dwrContainer</param-value>
</init-param>
</servlet>
DwrServlet은 publishContainerAs 초기화 파라미터에 설정된 값이 있으면 ServletContext.setAttribute() 메서드를 이용해서 DWR Container를 ServletContext에 보관한다. 이때 publishContainerAs 초기화 파라미터의 값을 속성 이름으로 사용한다.
2. DWR이 제공하는 클래스를 이용해서 객체를 JSON으로 변환한다.
Container dwrContainer = (Container)getServletContext().getAttribute("dwrContainer");
ConverterManager converterManager = (ConverterManager)dwrContainer.getBean(
ConverterManager.class.getName());
ScriptBuffer sb = new ScriptBuffer("dwrObject=");
SomeObject object = ...; // JSON으로 변환할 객체
sb.appendData(object); //
String json = null;
try {
json = ScriptBufferUtil.createOutput(sb, converterManager);
json = StringEscapeUtils.escapeJavaScript(json);
} catch (MarshallException e) {
throw new RuntimeException(e);
}
request.setAttribute("JSON_OBJECT", json);
위 코드에서 StringEscapeUtils 클래스는 Jakarta Commons Lang 프로젝트에 포함된 클래스이다.
ScriptBufferUtil.createOutput() 메서드는 ScriptBuffer에 설정한 객체로부터 자바 스크립트 코드를 생성해 주는데, 이때 생성된 자바 스크립트 코드는 서버 측의 객체를 자바 스크립트의 JSON 형식으로 변환해주는 코드가 된다.
3. 자바 스크립트의 eval()을 이용해서 자바 스크립트 객체로 변환
이제 남은 작업은 eval()을 이용해서 DWR 모듈이 생성한 자바 스크립트 코드를 실행해서 그 결과를 객체로 저장하면 된다.
var someObj = (function () { return eval("${JSON_OBJECT}"); })();
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
81 | [React.JS] 강좌 목록 | 황제낙엽 | 2020.05.19 | 222 |
80 |
Redux: React 앱의 효율적인 데이터 교류
![]() | 황제낙엽 | 2020.05.19 | 819 |
79 | Jasmine 관련 | 황제낙엽 | 2020.01.13 | 319 |
78 | 마우스 드래그(drag)시 iframe 위에서 컨트롤 잃는 현상과 해결 방안 | 황제낙엽 | 2017.12.12 | 24758 |
77 | 다섯 가지의 Ajax 우수 사례 | 황제낙엽 | 2011.04.07 | 309 |
76 | 15+ jQuery Popup Modal Dialog Plugins and Tutorials | 황제낙엽 | 2011.03.30 | 369 |
75 |
$.ajax() 공략
![]() | 황제낙엽 | 2011.03.27 | 502 |
» | DWR을 이용해서 객체를 JSON으로 변환하기 | 황제낙엽 | 2011.03.25 | 143 |
73 |
json을 이용한 로그인 구현
![]() | 황제낙엽 | 2011.03.25 | 678 |
72 | How Prototype extends the DOM (Prototype으로 DOM을 확장하는 법) | 황제낙엽 | 2011.03.24 | 537 |
71 | 스크랩 | 황제낙엽 | 2009.04.16 | 223 |
70 | YUI 스크랩 | 황제낙엽 | 2009.03.12 | 143 |
69 | 스크랩 | 황제낙엽 | 2009.03.11 | 137 |
68 | 관심 사이트 | 황제낙엽 | 2009.03.12 | 232 |
67 | 웹 개발 패러다임의 전환 - Flex와 Ajax의 동거 | 황제낙엽 | 2006.12.21 | 234 |
66 | Ajax 강의 정리 | 황제낙엽 | 2006.04.04 | 180 |
65 | 자바 기술을 이용한 AJAX의 활용 | 황제낙엽 | 2006.02.08 | 153 |
64 |
대표적인 AJAX Framework 소개
![]() | 황제낙엽 | 2007.02.14 | 228 |
63 | Ajax Framework 인기 순위: Ajaxian.com | 황제낙엽 | 2007.02.13 | 167 |
62 |
prototype.js 를 위한 개발자 노트 (Ajax Framework)
![]() | 황제낙엽 | 2007.02.15 | 124 |