日期:2014-05-16  浏览次数:20393 次

dwr 中后台返回值对应的js解析

(dwr 引擎里做了解析与转换 )

?数组与list 一样,转化为json 的有序列表

Map 转换成 json 对象值无序列表

如果是Java 自定义的 对象 需要在 dwr.xml中配置 类型转换 <convert converter="bean" match="com.ysen.dwr.Person"/>

?

public class Test2 {
	public String[] testArray(){
		return new String[]{"世界","你好"};
	}
	
	public String[][] testArray2(){
		return new String[][]{
			new String[]{"A1","A2"},
			new String[]{"B1","B2","B3"}
		};
	}
	
	public List testList(int size){
		List list = new ArrayList(size);
		for(int i=0; i<size; i++){
			list.add("someDAta"+i);
		}
		return list;
	}
	
	public List testList2(){
		List list = new ArrayList();
		for(int i=0; i<3; i++){
			String[] ss = new String[]{"A"+i,"B"+i,"C"+i};
			list.add(ss);
		}
		return list;
	}
	
	public Map testMap(){
		Map map = new HashMap();
		map.put("key1", "世界");
		map.put("key2", "你好");
		return map;
	}
	
	public String savePerson(Person person){
		person.setId(100);
		System.out.println(person.getName()+"被保存了,它的ID是:"+person.getId());
		return "Person[name="+person.getName()+",sex="+person.getSex()+",age="+person.getAge()+",id="+person.getId()+"]";
	}
}

?

?测试页面一

?

<script type="text/javascript">
function testArray(){
	test2.testArray(
		function(data){
			alert("一维数组的长度是:"+data.length);
			for(var i=0; i<data.length; i++){
				alert(data[i]);
			}
		}
	);
}
function testList(){
	test2.testList(
		5,
		function(data){
			alert("List的长度是:"+data.length);
			for(var i=0; i<data.length; i++){
				alert(data[i]);
			}
		}
	);
}
</script>

?

?

<body>
<a href="#" onclick="testArray()">Test2.testArray</a>
<a href="#" onclick="testList()">Test2.testList</a>
</body>

?

?

?

测试页面二

?

<script type="text/javascript">
function testArray2(){
	test2.testArray2(
		function(data){
			alert("二维数组的长度是:"+data.length);
			for(var i=0; i<data.length; i++){
				for(var j=0; j<data[i].length; j++){
					alert(data[i][j]);
				}
			}
		}
	);
}
function testList2(){
	test2.testList2(
		function(data){
			alert("List的长度是:"+data.length);
			for(var i=0; i<data.length; i++){
				for(var j=0; j<data[i].length; j++){
					alert(data[i][j]);
				}
			}
		}
	);
}
</script>

?

?

?

?

<body>
<a href="#" onclick="testArray2()">Test2.testArray2</a>
<a href="#" onclick="testList2()">Test2.testList2</a>
</body>

?

测试页面三

?

?

<script type="text/javascript">
function testMap01(){
	test2.testMap(
		function(data){
			alert(data.key1);
			alert(data["key2"]);
		}
	);
}

function testMap02(){
	test2.testMap(
		function(data){
			for(var p in data){
				alert("key="+p+",value="+data[p]);
			}
		}
	);
}

</script>

?

?

<body>
<a href="#" onclick="testMap01()">Test2.testMap - 获取对应key的值</a>
<a href="#" onclick="testMap02()">Test2.testMap - 循环获取一个Map中的key和value</a>
</body>

?

?

测试页面四

?

<script type="text/javascript">
function testSavePerson(){
	var person = {"name":"王五","sex":"男","age":19};
	test2.savePerson(
		person,
		function(data){
			alert(data);
		}
	);
}
</script>

?

<body>
<a href="#" onclick="testSavePerson()">保存人员信息</a>
</body>

?