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

 

 

 

 

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