(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="#" οnclick="testArray()">Test2.testArray</a>
<a href="#" οnclick="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="#" οnclick="testArray2()">Test2.testArray2</a>
<a href="#" οnclick="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="#" οnclick="testMap01()">Test2.testMap - 获取对应key的值</a>
<a href="#" οnclick="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="#" οnclick="testSavePerson()">保存人员信息</a>
</body>