dwr处理参数或返回值为pojo对象的JavaBean方法

来源:互联网 发布:xfplay 怎么没有mac版 编辑:程序博客网 时间:2024/05/16 01:26

       在使用dwr避免不了碰到javabean中有对象作为参数的,那么这样的方法怎么在js中调用呢?

       就这个问题,做了一个小例子,与大家分享一下:

package com.tgb.dwr;/** * dwr使用测试 * @author Admin * */public class DwrTest {public String hellobody(User user){return "Hello,"+user.getName()+",恭喜你今年"+user.getAge()+"岁";}public User getUser(){User user = new User();user.setName("Arron");user.setAge(10);return user;}}public class User {private String name;private int age;//省略set和get方法}


       dwr.xml的配置如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"><dwr><allow>  <create javascript="T1" creator="new">    <param name="class" value="com.tgb.dwr.DwrTest"/>  </create>  <convert match="com.tgb.dwr.User" converter="bean">  <param name="include" value="name,age"></param>  </convert></allow></dwr>

       js代码如下:

<script type="text/javascript">function test1(){var userdata;userdata = {name:"Arron", age:"10"};T1.hellobody(userdata,function(data){alert(data);});T1.getUser(function(data){for(var prop in data){alert("属性名:"+prop+",属性值:"+data[prop]);}});}</script>

       效果图如下:



       相信根据代码,你已经理解的差不多了。我再解释一下吧:


       由于dwr只支持json的数据格式,因此在dwr中我们要读取javaBean中的属性,就必须将其转换成json的数据格式,这需要配置convert进行转换转换器中最常用的是bean(本实例用这个)和Object。


       bean 转换器可以把pojo 转换成JavaScript支持的Json数组(以键值对的形式存储类似Java的Map)。或者反向转换。只有在你自己同意的情况下,dwr才会去调用你的Java代码。


       本实例中,我们采用的是bean转换器来转换User对象,所以对DwrTest配置一个creator,User配置一个convert。另外在js代码中,传递参数也需要用json格式的对象。即本例中的userdata对象。


4 0
原创粉丝点击