昨天刚用prototype做了个AJAX的例子,今天用了下DWR
才发现AJAX竟然也可以如此傻瓜式的实现,安装和xml的配置很多地方都有,我也不写了。:
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>
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
<create creator="new" javascript="Demo">
<param name="class" value="com.lan.Demo"/>
<include method="setinfo"/>
<include method="hello"/>
<include method="getaccount"/>
</create>
<convert match="com.lan.Demo" converter="bean">
<param name="include" value="name,sex,age,job,work"></param>
</convert>
</allow>
</dwr>



jsp页面如下:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<jsp:directive.page import="com.lan.Demo"/>
<%
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>My JSP 'dwr.jsp' starting page</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

<script type='text/javascript' src='dwr/interface/JDate.js'></script>
<script type='text/javascript' src='dwr/interface/Demo.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script>

function test()...{
Demo.hello("lanzhengwu",callhello);

}


function callhello(msg)...{
alert(msg);
}


function callback(msg) ...{
document.getElementById("linkid").innerHTML=msg;
}

var sign=false;

function show(uid)...{

if(sign==false)...{
Demo.getaccount(uid,callback);
sign=true;

}else if(sign==true)...{
document.getElementById("linkid").innerHTML="######";
sign=false;
}
}

function display()...{
Demo.setinfo(backinfo);
}

function backinfo(msg) ...{
var s="";
s+=msg[1]+" ";
s+="姓名:"+msg[0].name+" ";
s+="性别:"+msg[0].sex+" ";
s+="年龄:"+msg[0].age+" ";
s+="工作于:"+msg[0].work+" ";
s+="职位:"+msg[0].job+" ";
document.getElementById("rep").innerHTML=s;
}
</script>

</head>
<body>
This is my JSP page. <br>
<input type="button" value="test" onclick="test()"/>
<span onclick="show(1)" id="linkid" style="cursor:hand">######</span>
<a href="#" onmouseover="display()" >放上来显示信息</a>
<div id="rep"></div>
<table>
<tr><td></td></tr>
</table>
</body>
</html>

Bean 代码如下:
package com.lan;

import java.util.ArrayList;


public class Demo ...{

String name="";
String sex="";
int age=0;
String job="";
String work="";

public int getAge() ...{
return age;
}

public void setAge(int age) ...{
this.age = age;
}

public String getJob() ...{
return job;
}

public void setJob(String job) ...{
this.job = job;
}

public String getName() ...{
return name;
}

public void setName(String name) ...{
this.name = name;
}

public String getSex() ...{
return sex;
}

public void setSex(String sex) ...{
this.sex = sex;
}

public String getWork() ...{
return work;
}

public void setWork(String work) ...{
this.work = work;
}

public String hello(String name)...{
return "您好!"+name+",开始你的DWR学习啦!";
}

public double getaccount(int id)...{
double money=0.0;

if(id==1)...{
money=1234.00;

}else...{
money=8765.00;
}
return money;
}

public ArrayList<Object> setinfo()...{
ArrayList<Object> array=new ArrayList<Object>();
Demo demo=new Demo();
demo.setName("lanzhengwu");
demo.setAge(19);
demo.setSex("男");
demo.setJob("Java程序员");
demo.setWork("001f");
array.add(demo);
array.add("hello");
return array;
}
}
