티스토리 뷰


  1   DWR Library 사용하기



 프로젝트를 진행하다가 우연찮게 DWR에 대한 내용을 알게되고 사용해 보았다. 역시 잊어먹지않기위해 기록! Spring MVC와 연동도 가능하며 독립적으로 사용도 가능하다. 지금 프로젝트는 Spring MVC를 사용하는데. DWR에서 사용하는 스크립트의 요청때문에 부득이하게 Spring MVC와는 독립적으로 사용하게 되었다. Spring MVC와는 독립적이지만 Spring과 연동은 되게 설정했다.


 우선 DWR을 사용하기 위해 라이브러리 다운!


http://directwebremoting.org/dwr/downloads/index.html




  2   web.xml source





 첫번째로 web.xml에 DWR 서블릿을 정의후 URL 패턴을 정의해준다. DWR을 사용하기 전에는 ContextLoaderListener를 사용하지 않았었는데 왜그러는지 모르겠지만 애러가 발생했다. 그래서 추가! 이왕 추가하는거 잘됬구나 싶어 applicationContext.xml에 DWR설정을 정의했다 -_-;; 다른설정은 무시하고 DWR Config로 주석친 부분만 추가하면 된다.




  3   applicationContext.xml source



 이제 DWR에 대한 설정을 추가한다. 



네임스페이스 부분에서 DWR에 대한 추가 역시 해야한다. 위의 코드와 같이 네임스페이스에 세개의 항목을 추가한다.


xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr

http://www.directwebremoting.org/schema/spring-dwr

http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd


다음은 applicationContext.xml에서 정의한 자바스크립트에 매핑될 클래스를 정의한다.



테스트를 위해 매우 간단하게 정의했다. 자바스크립트에서 applicationContext.xml에 정의한 이름으로 호출하면 해당 클래스와 매핑된다.




  4   index.html source





index페이지에 DWR에 대한 스크립트를 정의한다. engine.js 와 util.js는 필수인듯 하다. 여기까지 하고 자바스크립트로 사용하면 된다.

현재 프로젝트를 Ext JS를 사용하고 있어서 app.js에서 프로젝트가 로딩될때 실행되도록 코드를 짰다.




요청 내용을 분석해보니 Request Body에 호출한 클래스 이름과 메소드 이름. 그리고 파라미터가 서버로 전송되고 있다. 뭐 200떨어졌으니 애러 안나고 잘 갔다온듯 하다.

Ext Js에서 위의 요청에대한 응답으로 다음과 같은 메시지박스를 띄워줬다.



댓글