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

13 篇文章 0 订阅

配置方法:

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 οnclick="testStr();" >testStr</button><br/>

<button οnclick="testMap();" >testMap</button><br/>

<button οnclick="testshuzu();" >testshuzu</button><br/>
<button οnclick="testList();" >testList</button><br/>
<button οnclick="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;
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值