상세 컨텐츠

본문 제목

web2.0이 대세...Dojo ..Json

IT 세상

by 이현민 (지후지율아빠) 2008. 11. 8. 14:36

본문


1.index.jsp

// 페이지에서 사용할 Util클래스와  Book 관련 클래스를 임포트한다.

<%@ page
   import="java.util.Iterator,
           java.util.List,
           com.esolaria.dojoex.Book,
           com.esolaria.dojoex.BookManager" %>
<script language="javascript">

           // Ajax 통신 , 이벤트 관리, html 출력에 관한 Dojo 객체를 임포트 한다..
            dojo.require("dojo.io.*");
            dojo.require("dojo.event.*");
            dojo.require("dojo.html.*");

            // 저자 이름 위에 마우스오버 되었을때 실행되는 함수
            function trMouseOver(bookId) {

                //파러미터로 넘어온 북ID를 통하여 북정보를 가져오는 함수 호출
                getBookInfo(bookId);
            }
            // 저자 이름 위에서 마우스가 벗어났을때 실행되는 함수로

           function trMouseOut(evt) {
                var bookDiv = document.getElementById("bookInfo");
                bookDiv.style.display = "none";
            }

            // Dojo를 통하여 책에 관한 정보를 얻어오는 함수
            function getBookInfo(bookId) {

                // 스크립트 배열객체에 북ID 정보를 저장한다.
                var params = new Array();
                params['bookId'] = bookId;
               
                // JSON data format를 사용하여 서버에 요청을 보내다.
                var bindArgs = {

                    //요청을 보낼  URL
                    url: "actions/book.jsp",

                     //에러발생시 처리 함수
                    error: function(type, data, evt){alert("error");},

                    //리턴받을 DATA 형식
                    mimetype: "text/json",

                    //요청으로 보낼 DATA
                    content: params
                };

                //dojo.io.bind를 사용하여 요청을 보낸다.
                var req = dojo.io.bind(bindArgs);
               
                // 요청상태가 load일때 populateDiv가 호출되도록 이벤트 핸들러에 등록
                dojo.event.connect(req, "load", this, "populateDiv");
            }

            // 요청이 처리되었을때 책의 정보를 받아와 div에 출력한다.
            function populateDiv(type, data, evt) {
                var bookDiv = document.getElementById("bookInfo");
                if (!data) {
                    bookDiv.style.display = "none";
                } else {

                    //Json형식의 객체에서 정보를 출력한다.
                    bookDiv.innerHTML = "ISBN: " + data.isbn + "<br/>Author: " + data.author;
                    bookDiv.style.display = "";
                }
            }
        </script>

 

2. book.java

    // 북 entity 객체의 정보를 org.json.JSONObject를 통하여

   // Json형식으로 리턴한다.

   public String toJSONString() throws JSONException {
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("bookId", new Integer(this.bookId));
        jsonObj.put("title", this.title);
        jsonObj.put("isbn", this.isbn);
        jsonObj.put("author", this.author);
        return jsonObj.toString();
    }

[출처] 6. DOJO AND JSON|작성자 이카루스



반응형

관련글 더보기