DWR学习(一)

          Ajax也算是久闻了,但总要你自己一遍一遍的Ajax.Request方法,浏览器的不同还得修改不通的方法,让人头痛!目前公司做的系统中包含了DWR,之前也接触过DWR,了解但不熟悉,现在将以前自己写的一个小例子拿出来晒晒。从下一篇文章开始,从头到尾学习下!

 1.首先是配置文件,web.xml添加如下代码:(这都是死的)

 <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
2.dwr.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

  <init>
  </init>

  <allow>
    <convert converter="bean" match="com.demo.DVO">  
          <param name="include" value="id,name"/>
    </convert>
    <!--  将 Java 类Demo 映射为 JavaScript 里面的对象 Demo -->
    <create creator="new" javascript="Demo" scope="application">
     <param name="class" value="com.demo.Demo"/>
     <include method="sayHello"/>
     <include method="mytest"/>
     <include method="mytest1"/>
     <include method="mytest2"/>
    </create>
 </allow>

</dwr>



3.Demo类:

 
package com.demo;

import java.util.ArrayList;
import java.util.List;

public class Demo {
	public String sayHello(String name){
		return "Hello-->>"+name;
	}
	public List mytest(String id,String name){
		System.out.println("mytest:"+id+"||"+name);
		
		List list=new ArrayList();
		
		DVO vo1=new DVO();
		vo1.setId("1");
		vo1.setName("xiaobo");
		list.add(vo1);
		
		DVO vo2=new DVO();
		vo2.setId("2");
		vo2.setName("mll");
		list.add(vo2);
		
		return list;
		
	}
	
	public DVO mytest1(String id,String name){
		System.out.println("mytest1:"+id+"||"+name);
		DVO vo = new DVO();
		vo.setId("3");
		vo.setName("test");
		return vo;
		
	}
	public void mytest2(DVO vo){
		System.out.println("^^^^^^^"+vo.getId()+vo.getName());
	}
}
4.DVO类:
 
package com.demo;

public class DVO {
	
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public DVO() {
	}
	
}
5.index.jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>dwrTest</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 
  <!--  DWR JavaScript 类库 -->
 <script type='text/javascript' src='/mydwr/dwr/interface/Demo.js'></script>
   <script type='text/javascript' src='/mydwr/dwr/engine.js'></script>
   <script type='text/javascript' src='/mydwr/dwr/util.js'></script>
   
   <script type="text/javascript">
   function updateName(){
   var text=$("text").value;
   var id=dwr.util.getValue("id");
   var name=dwr.util.getValue("name");
//   Demo.sayHello(text,callBack);//回调函数写在外部,下边是写在内部的
   Demo.sayHello(text,function (data){dwr.util.setValue("showHello",data,{escapeHtml:true});});
   
   //关于返回list取值,(javabean:DVO.java从data中得到)
   Demo.mytest("1","xiaob0",function(data){
   for(var i=0;i<data.length;i++){
  $(list1).add(new Option(data[i].id,data[i].id));//将list中的值放到jsp的list2中
  $(list2).add(new Option(data[i].name,data[i].name));//将list中的值放到jsp的list2中
   }
   });
}
function callBack(data){
 dwr.util.setValue("showHello",data,{escapeHtml:false});
}
   </script>
  </head>
 
  <body>
 请输入姓名:
 <br>返回值_:<input id="text" type="text" value=""/>
 <br>对象__id:<input id="id" type="text" value=""/>
 <br>对象name:<input id="name" type="text" value=""/>
 <br><input type="button" value="submit" οnclick="updateName()"/>
 <br><div id="showHello"></div>
 <br><div id="showVo"></div>
 <select name="list1"></select>
 <select name="list2"></select>
  </body>
</html>
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值