之前的基本配置一样。这里我就只把 dwr.xml 和Service 和bean 还有jsp页面的代码展示出来
dwr.xml 文件的配置代码如下:
<?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>
<!-- without allow, DWR isn't allowed to do anything -->
<allow>
<create creator="new" javascript="Student" scope="application">
<param name="class" value="com.xzj.service.StudentService"/>
</create>
<convert converter="bean" match="com.xzj.domain.Student"/>
</allow>
</dwr>
StudentService方法的代码如下:
package com.xzj.service;
import java.util.ArrayList;
import java.util.List;
import com.xzj.domain.Student;
public class StudentService {
public List find(){
List list=new ArrayList();
for(int k=1;k<10;k++){
list.add(k);
}
return list;
}
public Student findStudent(){
Student stu=new Student();
stu.setId(127);
stu.setName("周星驰");
stu.setAge(48);
return stu;
}
public List listStudent(){
List list=new ArrayList();
Student stu=null;
for(int k=1;k<6;k++){
stu=new Student();
stu.setId(k);
stu.setName("DWR冰山"+k);
stu.setAge(23+k);
list.add(stu);
}
return list;
}
}
Student 的代码如下:
package com.xzj.domain;
public class Student {
private int id;
private String name;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
前台index.jsp的代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
<title>DWR Operator List and Object</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">
<style type="text/css">
a:link, a:visited{
margin:10px;
color:#A62020;
padding:4px 10px 4px 10px;
background-color: #ecd8db;
text-decoration:none;
border-top: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;
border-bottom: 1px solid #717171;
border-right: 1px solid #717171;
}
a:hover{
margin:10px;
color:#821818;
padding:5px 8px 3px 12px;
background-color:#e2c4c9;
border-top:1px solid #717171;
border-left:1px solid #717171;
border-bottom:1px solid #EEEEEE;
border-right:1px solid #EEEEEE;
}
.datalist{
border:1px solid #5F6F7E;
border-collapse:collapse;
width:60%;
}
.datalist th{
border:1px solid #5F6F7E;
background-color:#E2E2E2;
color:#000000px;
font-weight:normal;
text-align:center;
padding:2px 8px 2px 6px;
height:20px;
}
.datalist td{
margin:0px;
padding:1px;
border:1px solid #ABABAB;
}
.put{
margin:0px;
border:0;
background-color:#E2E2E2;
padding:5px;
border-bottom:1px solid #ABABAB;
width:auto;
}
</style>
<script type="text/javascript" src='dwr/interface/Student.js'></script>
<script type="text/javascript" src='dwr/engine.js'></script>
<script type="text/javascript" src='dwr/util.js'></script>
<script type="text/javascript">
function find(){
Student.find(showMessage);
function showMessage(msg){
var rs=new Array();
rs=msg
for(var k in rs){
alert("List中的:"+rs[k]);
}
}
}
function findStudent(){
Student.findStudent(showMessage);
function showMessage(msg){
//操作Bean文件Student 必须要先再dwr.xml中配置
/**<convert converter="bean" match="com.xzj.domain.Student"/>*/
var msgStr="编号:"+msg.id+"\n姓名:"+msg.name+"\n年龄:"+msg.age;
alert(msgStr);
}
}
function listStudent(){
Student.listStudent(showMessage);
function showMessage(msg){
var rs=new Array();
rs=msg;
var table="<table class='datalist'>";
table+="<tr>";
table+="<th>编号</th>";
table+="<th>姓名</th>";
table+="<th>年龄</th>";
table+="</tr>";
for(var k in rs){
table+="<tr>";
table+="<th>"+rs[k].id+"</th>";
table+="<td>"+rs[k].name+"</td>";
table+="<td>"+rs[k].age+"</td>";
table+="</tr>";
}
table+="</table>";
showMsg.innerHTML=table;
}
}
</script>
</head>
<body>
<center>
<input type="button" class="put" name="btnList" value="查看对List的操作" onclick="find()"/>
<input type="button" class="put" name="btnList" value="查看对Student对象的操作" onclick="findStudent()"/>
<input type="button" class="put" name="btnList" value="查看对List中5个Student对象的操作" onclick="listStudent()"/>
</center>
<br><br>
<br><br>
<div id="showMsg" style="border:1px dashed #CCCCCC;width:500px:height:auto;margin:5px;padding:5px;text-align:center;">
</div>
</body>
</html>
为了好看 弄了点 CSS 代码。弄完这个。可以自由的操作DWR了。应该知道DWR的好处了吧。不过..对于他的不好之处。你可以去网络中看看.
如果明天有时间 继续
关于Spring的操作.
这里 我没有对数据库进行操作 。因为都是一样的...
分享到:
相关推荐
4. **数据类型转换**: DWR支持多种数据类型的转换,包括基本类型、自定义对象和集合。集合可以是ArrayList、LinkedList、Set等,DWR会将它们转换为JavaScript的Array。 5. **错误处理**: 在JavaScript中,你还需要...
**DWR(Direct Web Remoting)集合Spring实现异步提交** DWR(Direct Web Remoting)是一种开源JavaScript库,它允许Web应用程序在客户端与服务器之间进行实时、双向通信,从而实现异步数据交换。结合Spring框架,...
2. **自动类型转换**:DWR能够自动处理数据类型转换,使得服务器端的Java对象能够在客户端以JSON或XML的形式进行操作。这极大地简化了前端和后端之间的数据交换。 3. **安全机制**:DWR提供了一套安全机制,如CSRF...
DWR还支持更复杂的数据类型,如数组、集合(List、Set、Map)以及自定义对象。例如,Java方法返回一个`List<JavaBean>`,DWR会将其转换为JavaScript数组,每个元素都是对应的JavaScript对象。你可以在JavaScript中...
当Java方法返回`List`、`Map`或`Set`等集合类型时,DWR同样会自动转换成JavaScript数组或对象。对于`List`,JavaScript端会得到一个数组,可以使用数组方法进行操作;对于`Map`,会转换为JavaScript对象,可以通过...
3. **DWR转换器**:由于DWR默认只能处理基本类型和少数Java标准库中的对象,对于自定义对象,我们需要在`dwr.xml`中配置相应的转换器,使DWR能够将这些对象转换为JavaScript可以理解的格式。 4. **JavaScript调用**...
DWR自动处理了XMLHttpRequest对象的创建、请求的发送和响应的处理,使得开发者可以专注于业务逻辑,而不是底层的通信细节。 五、DWR使用步骤 1. **配置DWR**:在Web应用的`web.xml`中添加DWR的Servlet配置。 2. **...
2. **列表(List)**操作:DWR支持传递和返回Java集合,包括List。在JavaScript端,可以接收一个由Java List转换来的数组,然后对其进行遍历、添加、删除等操作。这极大地扩展了前端的处理能力,使得动态更新列表数据...
DWR简化了Ajax开发,使得开发者可以像操作本地对象一样操作服务器端的对象,而无需处理底层的XMLHttpRequest细节。 首先,我们来深入理解DWR的核心概念和技术特性: 1. **远程方法调用(Remote Method Invocation,...
在这个"DWR.rar_dwr"压缩包中,我们看到的是DWR在实际应用中的实例,涵盖了各种数据类型的处理,包括字符串、带参的字符串、数组、集合、Map以及循环Map和二维数组。 1. 字符串处理:在Web应用中,字符串是最基本的...
DWR支持多种类型的参数传递,包括基本类型(如int、String)、对象、数组、集合等。在客户端JavaScript中,你可以直接调用服务器端的Java方法,并传递参数。DWR会自动处理参数的序列化和反序列化过程。例如,你可以...
在Spring框架中,DWR可以通过Spring的AOP(面向切面编程)和依赖注入特性,更好地管理服务器端的Java对象。这种集成使得开发者能够在不破坏现有架构的情况下,添加Ajax功能,提升Web应用的交互性。 总的来说,Ajax...
在DWR中,你可以返回各种Java类型的数据,包括基本类型(如int、String)、自定义对象、集合(如List、Set)和Map等。例如: - 基本类型:在JavaScript端,你可以直接接收服务器返回的数字、字符串等。 - 集合:DWR...
总结来说,DWR框架提供了一种强大且便捷的方式来实现前后端的交互,无论是无参调用、字符串参数、自定义对象还是对象集合,DWR都能优雅地处理。这种技术在构建富客户端Web应用时非常有用,因为它极大地提升了用户...
通过上述示例可以看出,在DWR中处理List、Set和Map等集合类型的关键在于正确配置DWR XML文件,并编写合适的客户端JavaScript代码来调用服务端的方法及处理返回的数据。这种方式大大简化了前后端之间的数据交换过程,...
- **类型转换**:DWR自动处理Java与JavaScript之间的类型转换,包括基本类型、数组、集合和自定义对象。 - **异步和同步调用**:可以选择同步或异步调用服务器端方法,根据应用场景选择合适的调用方式。 DWR是提升...
DWR会自动处理Java Bean到JavaScript对象的映射,使得在客户端可以像操作JavaScript对象一样操作服务器返回的Bean。 总结来说,DWR通过简化AJAX通信过程,使得开发者可以更加专注于业务逻辑,而不是底层通信细节。...
2. **DWRUtil类**:DWRUtil是DWR提供的一系列实用工具函数的集合,包括但不限于数据转换(如JSON到Java对象的转换)、错误处理、DOM操作等,为开发者提供便利。 3. **Ajax支持**:DWR利用Ajax技术实现了页面的局部...
在Spring和Hibernate的支持下,我们可以设计一个接收数组或集合作为参数的方法,对每个元素执行相应的操作。DWR则负责在前端收集用户选择的记录,并调用对应的后端批量方法。 六、实践与优化 实际开发中,我们还...
6. **类型转换**:DWR自动处理JavaScript和Java对象之间的类型转换,包括基本类型、自定义对象和集合等。 7. **缓存机制**:DWR如何缓存远程对象,提高性能。 8. **调试工具**:DWR Console,用于查看和调试DWR调用...