DWR使用手記(二)

         還是前段時間寫的《DWR使用手記》那是在第一次使用DWR時寫的一些總結,對DWR做了一個大體的結構性的介紹,主是代碼結構。文章鏈接在這:http://blog.csdn.net/fly29/archive/2006/03/01/613289.aspx

         在這中間,經歷了換公司,然後被公司發配出差到現場維護,開發一些新需求,所以沒能把中間一些開發經驗總結予以分享,明天開始再一一總結吧,也算是對前段時間工作的一個總結吧。

         目前DWR已經升到2.0,也沒能及時瞭解其最新特性。DWR總的來講,是一個很好的框架,可以把js---java連接起來,方便在頁面中直接調用java類中方法。這其中起最大作用的當然是bsf框架,也是apache的一個開源框架。通過在dwr.xml中進行配置也可以把javascript中的對象與java類中的model(或者叫domain對象進行轉換),前幾天在寫代碼時用到了這點,寫個例子放在這。

   /* 聲明一個javascript對象 */
function book(name,author){
      
this.name=name;
      
this.author=author;
}
   

 

//寫個類供頁面中js調用BookTool
public class BookUtils{
       
public void addBook(Book book) {
             
//invoke business layer
       }

}


//domain
public class Book {
      
private String name;
      
private String author;
      
//getter & setter here
}
 

 

這樣在頁面中,聲明瞭一個book變量,直接調用BookTool的addBook(Book b)方法即可完成操作。例:

 

<script language="javascript">
function add() {
      
var b = new book("think in java","bruce");
      BookUtils.addBook(b);
}

</script>
當然在頁面頂部要加上:
<script type='text/javascript' src='dwr/interface/BookUtils.js'></script>

也要在dwr.xml中加上
<create creator="new" javascript="BookUtils">
        
<param name="class" value="com.test.BookTool" />
</create>

其實從上面我們可以看出,每次調用類BookTool是new一個新的對象,因此完全可以在class BookTool中把Book的所有屬性加進去,即可以是這樣:
    public class BookUtils {
           private String name;
           private String author;
           //getter & setter
           public void addBook(Book b) {
              // do sth
           }
     }
這樣可以在頁面中直接修改BookUtils的屬性,然後調用其方法即可。不過爲了更好使用OO,所以還是建議把域對象獨立出來。

 

以上純屬個人拙見,期待與您交流。

QQ:236306746

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章