Java js DWR3.0 dwr 返回值(数组,集合,Map,list )
DWR3.0 dwr 返回值(数组,集合,Map)
示例代码如下:
首先导入项目所需要的包,如下:dwr.jar,commons-logging-1.0.4.jar,版本可以调整;
1.web.xml
2.DWRTest.java
package com.micro;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@SuppressWarnings(\"unchecked\")
public class DWRTest {
/**
* 第一个简单调用
*/
public String getStr() {
return \"第一个dwr示例,调用成功\";
}
/**
* 带传递参数的调用,返回String
*/
public String getInfo(String name, int age, String address) {
return \"我的名字叫\" + name + \现年\" + age + \"岁,\" + \"来自\" + address;
}
/**
* 返回数组Array
*/
public String[] getStrArray() {
return new String[] { \"one\
}
/**
* 返回集合List
*/
public List getList() {
List list = new ArrayList();
list.add(\"welcome\");
list.add(\"to\");
list.add(\"BeiJing\");
return list;
}
/**
* 返回Map类型
*/
public Map getMap() {
Map map = new HashMap();
map.put(\"name\周星星\");
map.put(\"hobby\逃课\");
return map;
}
/**
* 返回二维数组类型
*/
public List getArrayList() {
List list = new ArrayList();
list.add(new String[] { \"1\
list.add(new String[] { \"one\
return list;
}
/**
* Exception处理
*/
public List getListTest(List list) {
try {
list.get(0);
} catch (Exception e) {
throw new NullPointerException(\"数据位空\");
}
return list;
}
}
3.dwr.xml
\"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN\"
\"http://getahead.org/dwr/dwr20.dtd\">
4.mydwr.js
/**
* 无参数
*/
function invoke1(){
dwr.getStr(
function(value){
alert(value);
}
);
}
/**
* 有参数
*/
function invoke2(){
dwr.getInfo(\"长江七号\火星\
function(value){
alert(value);
}
);
}
/**
* 返回数组
*/
function invoke3(){
dwr.getStrArray(
function(array){
var str=\"\";
for(var i=0;i } alert(str); } ); } /** * 返回集合(集合和数组的处理方式一样) */ function invoke4(){ dwr.getList( function(list){ var str=\"\"; for(var i=0;i } alert(str); } ); } /** * 返回Map */ function invoke5(){ dwr.getMap( //有如下两种处理方式 /*1)已知map的key*/ function(map){ alert(\"姓名:\"+map.name+\爱好:\"+map.hobby); } /*2).遍历的方式 function(map){ for(var key in map){ alert(key+\":\"+map[key]); } }*/ ); } /** * 返回数组的集合(二维数组) */ function invoke6(){ dwr.getArrayList( function(arrayList){ var str=\"\"; for(var i=0;i } str+=\"\\n\\r\"; } alert(str); } ); } /** * 同步设置 */ function invoke7(){ dwr.engine.setAsync(false);//设置同步,那么后续的方法才能按照顺序执行 invoke1(); invoke2(); } /** * 批处理batch(按照先后顺序执行) */ function invoke8(){ dwr.engine.beginBatch(); invoke1(); invoke2(); dwr.engine.endBatch(); } 5.index.jsp <%@ page language=\"java\" pageEncoding=\"UTF-8\"%> 上述,index.jsp页面就对上述各种dwr的返回类型和批处理(batch)做了处理,做了简单的测试,Ok,测试通过,下面再介绍几个页面, 对dwr其他功能的一些简单测试: 6.异常处理:exception.jsp <%@ page language=\"java\" pageEncoding=\"UTF-8\"%> 7.dwr.util.getValue()调用,dwrfunc.jsp <%@ page language=\"java\" pageEncoding=\"UTF-8\"%> onclick=\"alert(${'nameid'}.value)\" /> //如果要是有dwr.util提供的功能,必须引入dwr/util.js文件,dwr3之后,有写函数内写name或id都可以 onclick=\"alert($('nameid').value)\" /> 8.对JavaBean的传递和返回 User.java: package com.micro; public class User { private String name;; private String pass; 通过通过name\" name/id\" //get/set方法.... } UserRs.java: package com.micro; public class UserRs { public User convertUser(User user) { user.setName(\"admin\"); user.setPass(\"123456\"); return user; } } bean.jsp: <%@ page language=\"java\" pageEncoding=\"UTF-8\"%> 这些,只是对dwr的简单应用,其中的配置都在dwr.xml中,大家可以举一反三,通常情况下,dwr和spring要结合使用,下面给出一个简单的配置说明: 比如: 其中,creator=\"spring\",表明由spring来创建该对象, javascript=\"loginServiceDWR\",说明客户端的调用名称叫\"loginServiceDWR\",指明了spring配置文件中,id为\"coreLoginService\"的这么一个bean, 注意:引入dwr的js文件的顺序不能错了,如: 先引入dwr自身的,再引入自己的。 因篇幅问题不能全部显示,请点此查看更多更全内容