Dwr入门知识进阶三

1、下面来看看Dwr对象输出示例:
有个person实体类:
public class Person {
private int id;
private String name;
private String sex;
private int age;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

业务逻辑类Test2
public class Test2 {
public String savePerson(Person person){
person.setId(100);
System.out.println(person.getName()+"被保存了,它的ID是:"+person.getId());
return "Person[name="+person.getName()+",sex="+person.getSex()+",age="+person.getAge()+",id="+person.getId()+"]";
}
}

dwr文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="test2">
<param name="class" value="com.bjsxt.dwr.Test2"/>
</create>
<convert converter="bean" match="com.bjsxt.dwr.Person"/>
</allow>
</dwr>

下面来看看Dwr如何利用javascript来给我们的person类赋值的,首先来看一下js中对数组对象的赋值方式:
方式一:数组:有序列表
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test2.js"></script>
<script type="text/javascript">
//数组:有序列表
var a = ["张三",18,"男"];
alert(a[2]);
for(var i=0; i<a.length; i++){
alert(a[i]);
}
</script>

方式二:对象:名值对无序列表
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test2.js"></script>
<script type="text/javascript">
//对象:名值对无序列表
var a = {"name":"张三","sex":"男","age":18};
alert(a["sex"]);
for(var prop in a){
alert(a[prop]);
}
</script>

下面我们来看看具体的存储一个用户信息的具体实现方式
方式一:采用名值对的方式
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test2.js"></script>
<script type="text/javascript">
function testSavePerson(){
var person = {"name":"王五","sex":"男","age":19};
test2.savePerson(
person,
function(data){
alert(data);
}
);
}
</script>

方式四:js中的对象赋值
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test2.js"></script>
<script type="text/javascript">
function testSavePerson(){
var person = new Object();
person.name = "李四";
person.sex = "男";
person.age = 19;
test2.savePerson(
person,
function(data){
alert(data);
}
);
}
</script>

方式五:js中对象的构造函数来赋值
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test2.js"></script>
<script type="text/javascript">
function Person(){
this.name = "王五";
this.sex = "男";
this.age = 40;
}
function testSavePerson(){
var person = new Person();
test2.savePerson(
person,
function(data){
alert(data);
}
);
}
</script>

<a href="#" onclick="testSavePerson()">保存人员信息</a>

下面来看看异步和同步方式
默认情况下,DWR以异步的方式跟服务器通信,即可以同时向服务器发送请求,如果想要改为同步的方式,可以调用:dwr.engine.setAsync(false);
下面贴出JavaBean
public class Test3 {
public String method1(){
return "method1被调用了";
}

public String method2(){
return "method2被调用了";
}
}

dwr.xml文件添加代码:
   <create creator="new" javascript="test3">
<param name="class" value="com.bjsxt.dwr.Test3"/>
</create>

下面是展现页面
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test3.js"></script>
<script type="text/javascript">
function callMethod(){
dwr.engine.setAsync(false);

test3.method1(
function(data){
alert(data);
}
);

test3.method2(
function(data){
alert(data);
}
);
}
</script>
</head>
<body>
<a href="#" onclick="callMethod()">测试异步和同步方式</a>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值