DWR操作java对象

前端之家收集整理的这篇文章主要介绍了DWR操作java对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

-------------------------------Dwr操作java对象,改变页面信息----------------------------

Dwr使得我们可以在浏览器页面上调试java代码

通过一些测试和学习来看了看Dwr是如何将java对象信息显示页面上。

1.创建一个实体类:

 
    @H_403_18@packagexiao.zhang; @H_403_18@ @H_403_18@importjava.util.*; @H_403_18@ @H_403_18@publicclassPerson{ @H_403_18@privateStringname; @H_403_18@privateStringaddress; @H_403_18@ @H_403_18@publicPerson(){ @H_403_18@ @H_403_18@} @H_403_18@ @H_403_18@publicPerson(Stringname,Stringaddress){ @H_403_18@this.name=name; @H_403_18@this.address=address; @H_403_18@} @H_403_18@ @H_403_18@publicListgetAllPerson(){ @H_403_18@Listls=newArrayList(); @H_403_18@Personp=null; @H_403_18@for(inti=0;i<87;i++){ @H_403_18@p=newPerson("name"+i,"address"+i); @H_403_18@ls.add(p); @H_403_18@} @H_403_18@returnls; @H_403_18@} @H_403_18@ @H_403_18@publicStringgetName(){ @H_403_18@returnname; @H_403_18@} @H_403_18@ @H_403_18@publicvoidsetName(Stringname){ @H_403_18@this.name=name; @H_403_18@} @H_403_18@ @H_403_18@publicStringgetAddress(){ @H_403_18@returnaddress; @H_403_18@} @H_403_18@ @H_403_18@publicvoidsetAddress(Stringaddress){ @H_403_18@this.address=address; @H_403_18@} @H_403_18@ @H_403_18@publicStringtoString(){ @H_403_18@return"["+this.name+","+this.address+"]"; @H_403_18@} @H_403_18@}

在这个类中写了一个getAllPerson()的方法,用来模拟一下从数据库获取的信息。

2.接着配置web.xml文件

首先添加dwr.jar包。

 
    @H_403_18@<servlet> @H_403_18@<servlet-name>dwr</servlet-name> @H_403_18@<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> @H_403_18@<init-param> @H_403_18@<param-name>debug</param-name> @H_403_18@<param-value>true</param-value> @H_403_18@</init-param> @H_403_18@ @H_403_18@</servlet> @H_403_18@<servlet-mapping> @H_403_18@<servlet-name>dwr</servlet-name> @H_403_18@<url-pattern>/dwr/*</url-pattern> @H_403_18@</servlet-mapping>

为了使dwr能够操作java代码自然要配置dwr.xml文件

 
    @H_403_18@<createcreator="new"javascript="Person"> @H_403_18@<paramname="class"value="xiao.zhang.Person"/> @H_403_18@</create> @H_403_18@<convertconverter="bean"match="xiao.zhang.Person"/>

由于是操作对象,根据dwr的规则,这里使用的类型转换,如果转化是相对于整个包的所有类的话,可以将math="xao.zhang.Person"更改为:match="xiao.zhang.*"

3.在浏览器中调试

输入URL:http://localhost:8080/工程名/dwr

进入调试页面,选择要调试的类,在这个页面显示所有在dwr.xml中配置过的类。

很可惜的是对于操作实体bean的时候出现了这样的问题。

4.接下来修改

对 getAllPerson()方法进行测试的时候显示如上图,不知道什么问题。

 
    @H_403_18@packagexiao.zhang; @H_403_18@ @H_403_18@importjava.util.ArrayList; @H_403_18@importjava.util.List; @H_403_18@ @H_403_18@publicclassPersonDao{ @H_403_18@publicListgetAllPerson(){ @H_403_18@Listls=newArrayList(); @H_403_18@Personp=null; @H_403_18@for(inti=0;i<87;i++){ @H_403_18@p=newPerson("name"+i,"address"+i); @H_403_18@ls.add(p); @H_403_18@} @H_403_18@returnls; @H_403_18@} @H_403_18@}

然后配置dwr.xml文件

重新测试得到预期的结果,对象类型转化正确。

将每一个Person对象作为数组的一个元素输出
[{ filed_1,filed_2 },{ filed_1,filed_2},filed_2}````]

如果集合中存储的对象的字段与数组元素中的值一一对应。

 
    @H_403_18@添加PersonDao类的配置: @H_403_18@<createcreator="new"javascript="PersonDao"> @H_403_18@<paramname="class"value="xiao.zhang.PersonDao"/> @H_403_18@</create>

重新测试的结果:
重新写一个类使用getAllPerson()方法,Person类只作为一个实体Bean,讲其中的getAllPerson()方法删除
如果Person类中的getAllPerson()方法删除的话,调试PersonDao类仍然出现上面的问题。

本文出自 “野马红尘博客,谢绝转载!

猜你在找的Ajax相关文章