1、JavaScript的数据类型与Java数据类型的关系
JavaScript | Java |
Array数组 | List、Collection、数组 |
Boolean | Boolean |
Object | Map、Java Bean |
String | String |
Date | Date |
Numbers | Int、double、float等数值 |
XML Dom | Dom |
undefined | null |
2、Java组件的编写和发布以及客户端引用
1)Java组件必须是一个具体类(因为接口、抽象类反射机制无法实例化)
2)实体类必须遵循Java Bean规范即实现Getter和Setter
3)配置文件中Allow部分的Create元素的JavaScript属性的值要唯一
4)如果存在Java Bean需要转换则要配置Allow部分的Convert元素
5)客户端引用业务组件要以dwr/interface/xxx.js的路径引用JS文件
3、典型调用示例和回调函数
在进阶一中我们已经熟悉了简单字符串示例,下面我们来看数组集合类型的示例程序:
JavaBean的源代码:
public String[] testArray(){
return new String[]{"世界","你好"};
}
public String[][] testArray2(){
return new String[][]{
new String[]{"A1","A2"},
new String[]{"B1","B2","B3"}
};
}
public List testList(int size){
List list = new ArrayList(size);
for(int i=0; i<size; i++){
list.add("someDAta"+i);
}
return list;
}
public List testList2(){
List list = new ArrayList();
for(int i=0; i<3; i++){
String[] ss = new String[]{"A"+i,"B"+i,"C"+i};
list.add(ss);
}
return list;
}
public Map testMap(){
Map map = new HashMap();
map.put("key1", "世界");
map.put("key2", "你好");
return map;
}
dwr.xml文件添加代码
<create creator="new" javascript="test2">
<param name="class" value="com.dwr.Test2"/>
</create>
jsp页面javascript代码:
<%@ 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/test2.js"></script>
<script type="text/javascript">
function testArray(){
test2.testArray(
function(data){
alert("一维数组的长度是:"+data.length);
for(var i=0; i<data.length; i++){
alert(data[i]);
}
}
);
}
function testList(){
test2.testList(
5,
function(data){
alert("List的长度是:"+data.length);
for(var i=0; i<data.length; i++){
alert(data[i]);
}
}
);
}
function testArray2(){
test2.testArray2(
function(data){
alert("二维数组的长度是:"+data.length);
for(var i=0; i<data.length; i++){
for(var j=0; j<data[i].length; j++){
alert(data[i][j]);
}
}
}
);
}
function testList2(){
test2.testList2(
function(data){
alert("List的长度是:"+data.length);
for(var i=0; i<data.length; i++){
for(var j=0; j<data[i].length; j++){
alert(data[i][j]);
}
}
}
);
}
function testMap01(){
test2.testMap(
function(data){
alert(data.key1);
alert(data["key2"]);
}
);
}
function testMap02(){
test2.testMap(
function(data){
for(var p in data){
alert("key="+p+",value="+data[p]);
}
}
);
}
</script>
</head>
<body>
<a href="#" onclick="testArray()">Test2.testArray</a>
<a href="#" onclick="testList()">Test2.testList</a>
<a href="#" onclick="testArray2()">Test2.testArray2</a>
<a href="#" onclick="testList2()">Test2.testList2</a>
<a href="#" onclick="testMap01()">Test2.testMap - 获取对应key的值</a>
<a href="#" onclick="testMap02()">Test2.testMap - 循环获取一个Map中的key和value</a>
</body>
</html>
分享到:
相关推荐
#### 三、DWR入门 **1.1 简介** DWR通过提供一系列的工具和API,帮助开发者实现客户端与服务器端的异步通信。这包括了自动化的JavaScript生成、远程方法调用等功能。 **1.2 第一个DWR程序:HelloWorld** - **...
《Practical DWR 2 Projects》是一本关于Direct Web Remoting (DWR)技术实践的书籍,对于深入了解和掌握DWR具有很高的参考价值。DWR是一种JavaScript和Java之间的开源通信库,它允许Web应用程序实现双向实时通信,...
【描述】中提到的"入门的好资料"意味着这个压缩包可能包含初级到中级的教程、示例代码以及配置文档,适合初学者了解和掌握DWR的基础和进阶用法。"web.xml"和"dwr.xml"是两个关键的配置文件,它们在DWR集成到Web应用...
#### 一、DWR入门 **1.1 简介** DWR(Direct Web Remoting)是一种简化Ajax应用程序开发的技术。它通过提供一种简单的方式来调用服务器端的Java方法,从而使得客户端的JavaScript代码可以直接操作服务器端的Java...
#### 二、DWR入门 ##### 2.1 简介 - **DWR** 是一种基于Ajax的开源框架,用于简化Ajax编程过程。 - DWR通过提供一系列工具和服务,使JavaScript能够直接调用服务器端的Java方法,极大地提高了开发效率。 - 开发者...
【程序员从初级到高级知识汇集】是一本涵盖了程序员从入门到精通所需掌握的全面知识的资料集合。本书针对初级和高级程序员,旨在提供一个系统化的学习路径,帮助程序员提升技能,成为行业专家。 1. **Java知识** -...
在这些文档和资料中,你可以找到关于SSH(Struts、Spring、Hibernate)以及Spring框架的丰富知识,这些都是Java Web开发中的核心框架。 1. SSH面试.doc:这份文档可能包含了SSH框架在面试中常被问到的问题,包括...
Java学习路线图:从入门到精通的全面指南 在IT行业,Java作为一门经典且广泛应用的编程语言,其学习路径不仅对于初学者至关重要,对于希望深入发展的开发者同样关键。本篇将围绕“Java学习路线图”这一核心主题,...
Ext教程为使用Ext JS框架的开发者提供了大量实例和详细的说明,涵盖了从基本入门到进阶使用,再到解决遇到的问题,是一份非常实用的参考资料。通过这些实例,开发者可以快速掌握Ext JS的使用,并能高效地应用于实际...
#### 二、核心知识点 **2.1 非同步发送原理** 非同步发送是指在发送请求时不会阻塞浏览器,即用户仍然可以继续使用页面,而请求则在后台处理。实现这一点的关键是利用`XMLHttpRequest`对象的`send()`方法,配合`...