您的位置:首页 > 其它

DWR使用手记(二)

2006-12-16 22:49 351 查看
还是前段时间写的《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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: