(dwr 引擎里做了解析与转换 )
数组与list 一样,转化为json 的有序列表
Map 转换成 json 对象值无序列表
如果是Java 自定义的 对象 需要在 dwr.xml中配置 类型转换 <convert converter="bean" match="com.ysen.dwr.Person"/>
public class Test2 {
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;
}
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()+"]";
}
}
测试页面一
<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]);
}
}
);
}
</script>
<body>
<a href="#" onclick="testArray()">Test2.testArray</a>
<a href="#" onclick="testList()">Test2.testList</a>
</body>
测试页面二
<script type="text/javascript">
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]);
}
}
}
);
}
</script>
<body>
<a href="#" onclick="testArray2()">Test2.testArray2</a>
<a href="#" onclick="testList2()">Test2.testList2</a>
</body>
测试页面三
<script type="text/javascript">
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>
<body>
<a href="#" onclick="testMap01()">Test2.testMap - 获取对应key的值</a>
<a href="#" onclick="testMap02()">Test2.testMap - 循环获取一个Map中的key和value</a>
</body>
测试页面四
<script type="text/javascript">
function testSavePerson(){
var person = {"name":"王五","sex":"男","age":19};
test2.savePerson(
person,
function(data){
alert(data);
}
);
}
</script>
<body>
<a href="#" onclick="testSavePerson()">保存人员信息</a>
</body>
分享到:
相关推荐
2. **生成JavaScript接口**:DWR会自动生成JavaScript接口,这些接口对应于服务器端的Java方法,可以直接在客户端代码中使用。 3. **客户端调用**:在HTML页面中,我们引入DWR生成的JavaScript文件,并通过这些接口...
- **在JavaScript中调用**:在HTML或JavaScript文件中引入生成的JavaScript接口,即可像调用本地函数一样调用服务器端的方法。 4. **安全性**:DWR提供了一些安全特性,如IP白名单、方法签名验证等,以防止未授权...
5. **错误处理**: 在JavaScript中,你还需要处理可能出现的错误。可以使用DWR提供的错误处理机制,如全局错误处理器或在每个方法调用中添加错误回调。 6. **性能优化**: 如果返回的集合非常大,可能会影响页面性能...
`,在JavaScript中,你可以通过索引来访问每个元素:`for(var i=0; i; i++) console.log(names[i]);` 4. **集合**: DWR同样支持List、Set等集合类型的返回。比如返回一个ArrayList,在JavaScript端,这个集合会被...
DWR (Direct Web Remoting) 是一个开源Java库,它允许在Web应用程序中实现JavaScript与服务器端Java对象的直接交互,极大地简化了AJAX(Asynchronous JavaScript and XML)的使用。在J2EE环境中,DWR作为一个强大的...
DWR是一种让Java方法可以直接在JavaScript中调用的技术,无需编写复杂的AJAX代码。它通过在服务器端运行一个Servlet,允许前端JavaScript代码像调用本地函数一样调用远程服务器上的Java方法,实现了前后端的无缝通信...
在例子中,可能有一个用于接收后台推送消息的JavaScript函数,这个函数会被DWR自动调用。 5. **服务器端实现** 在服务器端,我们需要创建一个或多个Java类,其中包含被DWR暴露给客户端的方法。这些方法通常负责...
接下来,在前端JavaScript中,我们可以通过DWR调用上述定义的Java方法,并设置回调函数来接收返回的结果。具体步骤如下: - **初始化变量**:定义一个变量`_data`用于存储回调函数中的数据。 - **设置同步模式**:...
在本“DWR与后台异步交互简单例子”中,我们将探讨如何利用DWR来实现前后端的数据通信,提高用户体验。 首先,**DWR的核心理念**是通过提供一套简单的API,使得JavaScript可以直接调用Java方法,仿佛它们都在同一个...
在JavaScript中,通过引入DWR自动生成的接口文件(如TestClass.js)和核心库(engine.js, util.js),可以直接调用`testClass.testMethod1()`执行方法。 2. **有简单返回值的JAVA方法调用** 配置与无参数情况相同...
在这个页面中,我们引入了DWR生成的JavaScript接口`HelloWorld.js`和核心引擎`engine.js`。然后,在页面加载完成后,调用`HelloWorld.sayHello()`,并将返回的结果显示在页面上。 ### 六、部署与测试 1. 将DWR的`...
DWR使得开发者能够轻松地在Web应用中调用后台Java方法,就像调用本地JavaScript函数一样。下面将详细阐述DWR的工作原理、配置过程以及如何使用DWR实现JS调用Java后台方法。 1. **DWR概述** DWR的核心功能是提供一...
在这个特定的项目中,"JAVA AJAX中使用dwr获取后台list并在页面用表格显示",我们将探讨如何结合Direct Web Remoting (DWR) 框架来实现这一功能,同时涉及到二级联动的概念。 DWR是一个开源的Java库,它允许...
最后,在JavaScript中,你可以使用DWR提供的API(如`DWREngine`或`RemoteObject`)来调用这些方法,DWR会处理所有网络通信的细节。 2. **后台调用前端(Reverse Call模式)**: 在某些场景下,服务器可能需要主动...
`engine.js`是DWR的核心脚本,它实现了JavaScript和Java之间的远程调用(Remote Procedure Calls, RPC)。这个文件处理了请求的发送、响应的接收以及结果的处理。通过`engine.js`,前端开发者可以轻松地创建Java对象...
首先,DWR允许我们在JavaScript中直接调用Java方法,这使得前后端交互变得更加直观。在项目中,我们需要在DWR配置文件(通常为dwr.xml)中定义允许的远程方法,这样JavaScript就能通过DWR引擎调用这些方法,获取...
在本文中,我们将深入探讨DWR的后台推送技术,包括DWR 2.0、3.0以及与Spring集成的3.0+版本的实现方式,并结合提供的文件资源进行解析。 首先,让我们来看看DWR 2.0的推送技术。在DWR 2.0中,后台推送主要通过...
"engine.js"是DWR的客户端引擎文件,它包含了一组JavaScript库,使得在浏览器中可以轻松地调用服务器端的Java方法。这个文件应该被包含在Web页面中,以便Web应用能够利用DWR的功能。`engine.js`提供了诸如对象转换、...
通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....
在JavaScript中,我们可以像调用本地函数一样调用这些远程方法,DWR会自动处理请求和响应的序列化和反序列化。 5. **消息精准推送**:在描述中提到了“消息精准推送”,这意味着我们需要根据用户或特定条件向客户端...