sitelink1 http://javacan.tistory.com/160 
sitelink2  
sitelink3 http://1 
extra_vars4 ko 
extra_vars5  
extra_vars6 sitelink1 
DWR을 이용해서 웹 어플리케이션을 개발하다 보면 성능 상의 이유로 DWR이 객체를 변환해서 생성하는 JSON 코드를 서버 코드에서 직접 생성하고 싶을 때가 있다. 이 경우 다음과 같은 절차에 따라 작업을 진행하면 된다.

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}"); })();

번호 제목 글쓴이 날짜 조회 수
» DWR을 이용해서 객체를 JSON으로 변환하기 황제낙엽 2011.03.25 34
19 YUI 스크랩 황제낙엽 2009.03.12 16
18 Spring에서 DWR Annotation 사용하기 file 황제낙엽 2009.10.28 151
17 DWR 2.0 and Spring 2.x - The DWR namespace handler 황제낙엽 2009.05.16 124
16 Building Your Own Widget Library with YUI 황제낙엽 2009.04.16 321
15 YUI 응용프로그램 만들기 (Writing Your First YUI Application) 황제낙엽 2009.03.12 32
14 MethodChain이란? 황제낙엽 2009.03.12 33
13 DWR2.x 와 Spring2.x에서 설정 황제낙엽 2009.03.12 15
12 [guni] DWR 사용시 Session 값 얻기 황제낙엽 2009.03.12 18
11 [guni] Spring + DWR 을 이용한 Form Submission처리... 황제낙엽 2009.03.12 9
10 [Whiteship's Note] Spring + Ajax with DWR (Revolution) file 황제낙엽 2009.03.12 68
9 [Whiteship's Note] Spring + Ajax with DWR (Coding) file 황제낙엽 2009.03.12 52
8 [Whiteship's Note] Spring + Ajax with DWR 황제낙엽 2009.03.12 24
7 [흰둥이와 백설이] DWR - Reverse Ajax part 2 : Configuring Reverse Ajax 황제낙엽 2009.03.12 39
6 [흰둥이와 백설이] DWR - Reverse Ajax part1 황제낙엽 2009.03.12 31
5 [흰둥이와 백설이] DWR 사용을 위한 web.xml 설정 방법 황제낙엽 2009.03.12 52
4 [흰둥이와 백설이] Overview Of DWR - DWR : JAVA를 위한 쉬운 AJAX 황제낙엽 2009.03.12 18
3 Direct Web Remoting 황제낙엽 2009.03.12 28
2 Reverse AJAX in DWR 2.0 황제낙엽 2007.08.23 49
1 흰둥이’s DWR 강좌 file 황제낙엽 2007.08.23 45