文档章节

dwr 3.0 配置 + 不同参数,不同返回值调用方法 示例

王庭
 王庭
发布于 2015/10/26 17:01
字数 674
阅读 112
收藏 1

配置方法:

1 官网 dwr.jar包

2 web.xml

<!-- dwr -->
  <listener>
    <listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <description></description>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>


3 dwr.xml 

A  和spring 整合

     

<dwr>
	<allow>
	<create creator="spring" javascript="dwrService" >
		<param name="beanName" value="dwrServiceImpl" ></param>
	</create>
	<create creator="spring" javascript="basicDwrService" >
		<param name="beanName" value="basicDwrServiceImpl" ></param>
	</create>
	<convert match="com.ass.common.generated.model.TUser" converter="bean" />  
	</allow>

</dwr>

B 没有和spring整合


<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value="/com.dwr.TestClass" />
<include method="testMethod1"/>
</create>
</allow>
</dwr>


4 jsp页面引用

<script type='text/javascript' src="${root }dwr/engine.js"></script>
<script type='text/javascript' src="${root }dwr/util.js"></script>
<script type='text/javascript' src="${root }dwr/interface/dwrService.js"></script>


***********************上面配置网上一大堆,重点是下面使用范例*****************************************************************************


1 jsp页面写法   和  2 后台写法


1:

<script type="text/javascript">
	function testStr(){
		console.info("begin test str");
		dwrService.testStr("wangt",function(data){console.info(data)});
	}
	
	function testMap(){
		//*******Map参数写法1 begin
		var data = {
				u : 'username',
				p : 'password'
		}
		//*******Map参数写法1 end
		//*******Map参数写法2 begin
		var d = new Object();
		d.name = 'aa';
		d.sdf='ss';
		//*******Map参数写法2 end
		console.info(d);
		console.info(data);
		dwrService.testMap(d, function(data){
			console.info(data);
			console.info(data.ok);
		})
	}

	
	function testshuzu(){
		var a = new Array();
		a[0] = "1";
		a[1] = "2";
		a[2] = "3";
		dwrService.testShuzu1(a,function(d){//return String[]
			console.info(d);
			console.info(d[0]);
		})
		
		dwrService.testShuzu2(a,function(d){//return List<String>
			console.info(d);
			console.info(d[0]);
		})
		
	}
	
	
	function testList(){
		var lst = [];
		//var a = {name : "aname", password: 'paassword'};
		//var b = {name : "bname", password: 'bpassword'};
		var a = new Object();
		var b = new Object();
		a.name = "aname";
		a.password = "apassword";
		b.name = "bname";
		b.password = "bpassword";
		lst[0] = a;
		lst[1] = b;
		console.info(lst);
		dwrService.testList(lst, function(da){
			console.info(da);
			console.info(da[0]);
			console.info(da[0].ok);
		})
		
	}
	
	function testuser(){
		var u = new Object();
		u.name="uname";
		dwrService.testUser(u,function(d){
			console.info(d);
			console.info(d.name);
		})
		
	}
	
</script>
</head>
<body>
<button onclick="testStr();" >testStr</button><br/>

<button onclick="testMap();" >testMap</button><br/>

<button onclick="testshuzu();" >testshuzu</button><br/>
<button onclick="testList();" >testList</button><br/>
<button onclick="testuser();" >testUser</button><br/>




2 java代码

@Override
	public String testStr(String str) {
		System.out.println(str);
		return "hello"+str;
	}
	
	/*
	 * 
	 * @see com.ass.common.service.DwrService#testMap(java.util.Map)
	 * @author wangt 2014年12月1日 上午10:51:08 
	 */
	@Override
	public Map<String, String> testMap(Map<String, String> m){
		System.out.println(m);
		System.out.println(m.get("u"));
		System.out.println(m.get("p"));
		
		Map<String, String> m1 = new HashMap<String, String>(); 
		m1.put("ok", "is ok");
		return m1;
	}
	
	/*
	 * 
	 * @see com.ass.common.service.DwrService#testShuzu1(java.lang.String[])
	 * @author wangt 2014年12月1日 上午10:51:08 
	 */
	@Override
	public String[] testShuzu1(String[] s){
		System.out.println(s);
		System.out.println(s[1]);
		String[] c = {"aa","vv","cc"};
		return c;
	}
	
	/*
	 * 
	 * @see com.ass.common.service.DwrService#testShuzu2(java.util.List)
	 * @author wangt 2014年12月1日 上午10:51:08 
	 */
	@Override
	public List<String> testShuzu2(List<String> l){
		System.out.println(l);
		System.out.println(l.get(0));
		List<String> ll = new ArrayList<String>();
		ll.add("aa");
		ll.add("bb");
		return ll;
	}
	
	
	/*
	 * 
	 * @see com.ass.common.service.DwrService#testList(java.util.List)
	 * @author wangt 2014年12月1日 上午10:51:08 
	 */
	@Override
	public List<Map<String,String>> testList(List<Map<String, String>> l){
		System.out.println(l.get(0));
		Map<String, String> m1 = new HashMap<String, String>(); 
		Map<String, String> m2 = new HashMap<String, String>(); 
		m1.put("ok", "okoko");
		m1.put("oooo", "oooo");
		m2.put("ok", "okoko222");
		m2.put("oooo", "oooo222");
		List<Map<String, String>> ll = new ArrayList<Map<String, String>>();
		ll.add(m1);
		ll.add(m2);
		return ll;
		
	}
	
	
	/*
	 * 
	 * @see com.ass.common.service.DwrService#testUser(com.ass.common.generated.model.TUser)
	 * @author wangt 2014年12月1日 上午10:51:08 
	 */
	@Override
	public TUser testUser(TUser m){
		System.out.println(m.getName());
		TUser c = new TUser();
		c.setName("aaa");
		return c;
	}



版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

王庭
粉丝 16
博文 95
码字总数 133906
作品 0
海淀
程序员
私信 提问
在 Spring Web MVC 环境下使用 DWR

DWR 简介 目前 Ajax 的开发框架有很多,使用这些框架可以简化 Ajax 的开发。DWR (Direct Web Remoting) 是一个用于改善 Web 页面与 Java 类交互的远程服务器端 Ajax 开源框架。DWR 可以动态生...

红薯
2011/01/12
1K
1
JimStoneAjax如何跟DWR竞争?

(JimStoneAjax交流群:366984517) DWR是Ajax实现RIA一时无二的王者,它强大厚重并且饱经磨练。JimStoneAjax是同领域的新秀,灵活、轻巧且使用方便。 JimStoneAjax可以跟DWR竞争嘛?答案是肯定...

JimStone
2013/09/24
883
2
as2 AVM1对象和as3对象的通信

注意本人遇到的 connection名称问题,因为实际上是域:名称,调用时有时会找不到,因此在connection名称前加_ 更真实的原因是as1.0不支持connection,所以发布时一定要看清楚哈,用flash pla...

付翔
2009/10/30
0
0
Java的Ajax框架--DWR

DWR是一个Java开源库,帮助你实现Ajax网站。 它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。 DWR主要包括两部分: 在服务器上运行的Servlet...

匿名
2008/09/05
17.9K
4
比DWR轻量灵活方便的AJAX框架--JimStoneAjax

通过JS直接执行Java方法的快速、安全、灵活和简便的框架 它比DWR轻量的多,但是比DWR也更加灵活、方便、强大。 直接通过Javascript调用Java方法,只要您的项目基于Spring,您不需要任何配置,...

JimStone
2013/09/23
3.8K
2

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
27分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
28分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
31分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
37分钟前
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部