@ 주제 

DWR 사용법 

 

@ 목적 

DWR을 이해하고 사용하기 위함.

 

@내용 

DWR은 DirectWebRemoting의 약자

 

DWR을 사용하기 전 비동기적 서버 통신은 Ajax를 통해서 비동기적인 request를 보내고 서버가 해당하는 데이터를 텍스트(json text도 가능)나, xml을 보내주면 javascript의 callback method를 통해 데이터 데이터를 parsing하여 view에 javascript로 뿌려주는 방식으로 사용함.

이렇게 web에서 가장 많이 사용하는 비동기 통신은 얼마전까지 ajax가 담당해 왔습니다. 하지만, Ajax를 구현해 보신 분은 아시겠지만, 비동기 통신을 하기 위해선 XMLHttpRequest라는 Object의 인스턴스를 생성해서( 이것도 브라우저마다 지원하는 XMLHttpRequest가 달라 브라우저마다 따로 구현을 해야 합니다.) request를 서버로 날리고 response로 받은 xml이나 text( ajax는 두종류의 return밖에 지원하지 않아요..ㅜㅜ)를 적절히 파싱후 html의 해당 영역에 꽂아 넣어야 하는 엄청 대박 불편한 루틴을 타야 합니다.

(Ajax의 자세한 내용은 여기서..)

그래서 나온것이 DWR입니다. 이 DWR이란 놈은 Ajax의 XMLHttpRequest를 만들필요 없이, 바로 비지니스로직을 처리하는 JAVA의 class로 직접 접근할 수 있습니다. 그렇기 때문에 request를 날리기 위해 XMLHttpReqeust를 만들 필요가 없을 뿐더러, view에서 자바 method를 call할때 전달 파라미터가 String형이 아닌 Object 형도 가능하다는 장점이 있습니다.

 

설정은 참고 - > http://krespo.net/108

 

 

- 클래스에서 extends AbstractDwr 한다.

- 필요에 맞는 메서드들을 정의한다.  리턴타입은 object

- 사용하고자하는 페이지 상단에

 

   <script type="text/javascript" src="/dwr/interface/StepMngDwr.js"></script>  선언한다.

- /dwr/interface/  -> 실제로 존재하지 않는 경로임, dwr 설정시 정의됨

- StepMngDwr.js - > extends AbstractDwr를 한 클래스이름.js 로 선언하므로  js 함수처럼  해당 클래스에 정의한 메서드를 사용할 수 있다.

예)

    StepMngDwr.getStepWinApplicantList(JSON.stringify(params), errHandler(function(json) {

            $(config_pop.FORMFIELD.POPLIST)[0].addJSONData(json);

        

            // 글유무에 따라 리스트 처리

            var recs = $(config_pop.FORMFIELD.POPLIST).getDataIDs().length;

            

            if (recs == 0) emptyMsgDiv.show();

              else emptyMsgDiv.hide();

        }));

 

+ Recent posts