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

       在使用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对象。

时间: 2025-01-19 04:56:31

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

springmvc-springMVC参数错误返回值

问题描述 springMVC参数错误返回值 我在用SpringMVC时,如果某些参数在请求时为必填参数,会用到(required = true),即:@RequestParam(value = ""id"" required = true) String idString name)但是这样的话如果id为空一请求就会报个Spring参数的错.后来我把required 改为false,然后在程序中判断传入参数是否为空,如果为空的话,手动拼接要返回的json字符串:{s

对象- window.showModalDialog传递参数后返回值

问题描述 window.showModalDialog传递参数后返回值 window.showModalDialog传递参数var obj = new Object()后 返回值是什么 解决方案 什么类型的数据都可以

mian()的参数和返回值到底是什么?

一直以来都使用着void main(){}但是从没有关注过参数和返回值~~~ 确实是缺少哪种疑问的学习态度,从来都是来学这是什么,却没有考虑为什么要这样写. 其实main()是有参数的,而且是两个,它的原型如下: int main(int argc,char* argv[]) { return 0; } //其中,argc代表命令行中字符串的个数,argv是一个字符指针数组==>指向命令行中各个字符串   由于main()函数是被启动例程调用的,所以从main()函数return时仍返回到启动例

存储过程的输出参数,返回值与结果集_MsSql

每个存储过程都有默认的返回值,默认值为0.下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集. 首先:在sql server management studio中查看输出参数,返回值以及结果集.本示例以Northwind数据库为例. 复制代码 代码如下: create proc Employee @Rowcount int=0 output as begin SELECT * FRO

存储过程的输出参数,返回值与结果集

每个存储过程都有默认的返回值,默认值为0.下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集. 首先:在sql server management studio中查看输出参数,返回值以及结果集.本示例以Northwind数据库为例. 复制代码 代码如下: create proc Employee @Rowcount int=0 output as begin SELECT * FRO

JS模态窗口返回值兼容问题的完美解决方法_javascript技巧

因系统要兼容原IE已使用的关闭方法,经调试测得,需对window.dialogArguments进行再较验,不然易出问题. function OKEnd(vals) { if (vals == null) vals = "TRUE"; if (typeof (window.opener) == "undefined") { if (typeof (window.dialogArguments) != "undefined") { if (wind

tornado motor函数调用另一个异步操作Mongo数据库返回值是Future对象

问题描述 tornado motor函数调用另一个异步操作Mongo数据库返回值是Future对象 我用motor在tornado框架下来操作mongodb,按照官方教学文档写的结果正常. >>> @gen.coroutine... def do_find_one():... document = yield db.test_collection.find_one({'i': {'$lt': 2}})... print document...>>> IOLoop.cur

swfupload 返回值-swfupload返回值不为对象

问题描述 swfupload返回值不为对象 我重java后台传递的为Map对象,在js页面就变成了{""path"":""test/img/login.jpg""}求swfupload怎么让他传递为对象而不是字符串呀{""path"":""http://localhost:8080/test/swf/14216677325335687.jpg""}

一个类如何实现两个接口中同名同参数不同返回值的函数

假设有如下两个接口: public interface IA{    string GetA(string a);}public interface IB{    int GetA(string a);} 他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该