- 浏览: 223072 次
- 性别:
- 来自: 烟台
文章分类
最新评论
-
KateAndNomi2333:
kunchong21 写道tinguo002 写道List l ...
ArrayList深拷贝的一种实现方法 -
kunchong21:
tinguo002 写道List list1 = new Ar ...
ArrayList深拷贝的一种实现方法 -
suihr:
你设置的操作系统的时区正确吗?
Tomcat5.5时区设置 -
xiao_Yao:
我用windows8 tomcat5.5无法 使用 呀
Tomcat5.5时区设置 -
hftgoodgood:
hftgoodgood 写道 ...
通用权限管理系统设计篇(三)——概要设计说明书
http://www.iteye.com/topic/652199
第一次来JAVA Eye发文章,以前主要在百度、CSDN发,最近经常来这里看文章就顺便注册了一个。这两天一直在公司搞DWR AJAX框架,也是刚学,了解的不是太深。今天星期6闲来无事,就来写写。唉,说了一大堆废话,好了下面进入正题。
DWR框架功能确实挺强大的,感觉使用起来也挺方便的,主要是配置容易出问题,大多数JAVA里面的框架都配置一大堆,这方面感觉太繁琐。现在写下DWR的简单使用以及如何在JSP页面接收返回List类型的数据。要想使用DWR框架得有以下几个步骤:
一准备
1、下载JAR包
我使用的DWR2.0,所以下载相应的JAR包就行了,一般放到WEB-INF的Lib包下就行了。(当初做的时候,启动TOMCAT时候,出现了错误,说的是缺少日志JAR包,后来就加了commons-logging-1.1.1.jar就没事了,网上看别人用的时候没出现此问题。)
2、接下来就是配置了
首先是配置 web.xml.在web.xml加上
- <servlet-name>dwr-invoker</servlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>true</param-value>//开启调试
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>dwr-invoker</servlet-name>
- <url-pattern>/dwr/*</url-pattern>
- </servlet-mapping>
<servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value>//开启调试 </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
这样配置就行了,具体意思,我想你看下就应该明白了。
3 建个dwr.xml配置文件,和web.xml放在一个文件夹下就行了。我用MyEclipse8做的,可以直接新建个XML文件。
这里面主要配置一些有关后台JAVA类的,配置好后,DWR框架就会帮助你生成一些JS文件。详细说明下边再说。
二编码
1、 基本的准备好后就可以开始写JAVA代码了。
class:Book
- package com.liang;
- public class Book {
- private String id;
- private String name;
- private String pass;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPass() {
- return pass;
- }
- public void setPass(String pass) {
- this.pass = pass;
- }
- }
package com.liang; public class Book { private String id; private String name; private String pass; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } }
class: BookList
- package com.liang;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.ResourceBundle;
- public class BookList {
- public List <SPAN style="COLOR: #ff0000">getList</SPAN>( ){
- List list=new ArrayList();
- Book book=null;
- for(int i=1;i<3;i++){
- book=new Book();
- book.setId("id"+i);
- book.setName("name"+i);
- book.setPass("pass"+i);
- list.add(book);
- }
- System.out.print(list);
- return list;
- }
- }
package com.liang;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
public class BookList {
public List getList( ){
List list=new ArrayList();
Book book=null;
for(int i=1;i<3;i++){
book=new Book();
book.setId("id"+i);
book.setName("name"+i);
book.setPass("pass"+i);
list.add(book);
}
System.out.print(list);
return list;
}
}
这是我当初写的测试代码,一个Book类,一个BookList.我写的这个测试主要用来返回一个List然后用DWR框架在JSP页面循环得到这些数据。BookList里面有个返回List类型的的getList()方法,用来返回后台数据,
实际做开发的时候数据一般都从数据库查出来,自己做下相应的更改就行了。
这两个JAVA类写完后,后台代码基本就OK了,现在最重要的是进行配置了,如何让DWR能够找到这些JAVA类,并执行相应的工作呢。先看看我的dwr.xml配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting
- 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" >
- <dwr>
- <allow>
- <!--
- 下面这部分配置好后,启动tomcat后会生成一个JS文件,在这里可以自定义JS文件名,
- 我这样写的: javascript="BookList" 习惯用类名来定义,页面调用JS时候就用这个名字.
- value="com.liang.BookList" 这个用来定义你的类所在位置(有包了加包名,不然找不到)。
- -->
- <create javascript="BookList" creator="new" scope="application">
- <param name="class" value="com.liang.BookList"></param>
- </create>
- <!--
- match="com.liang.Book" 这个用来定义实体类的位置(有包了加包名,第一次做的时候忘记加了,
- 害了我半天时间得不到值),因为我返回List方法中,
- 里面封转的是Book类型,Book又有自己的属性ID,name等,
- JSP页面获得时候就得根据他里面的属性得到值。
- value="id,name,pass"这里面主要定义你在JSP页面获得那个属性值时要用到的,
- -->
- <convert match="com.liang.Book" converter="bean">
- <param name="include" value="id,name,pass"/>
- </convert>
- <!--
- 下面这个配置主要为了显示异常信息,如果不配置的话,程序中所有的错误,
- 都只弹出error的对话框,这样我们就看不到详细的错误信息,加大了调试难度,
- 相对配置的话,就会把Error转换成具体的错误描述来看,就如同你在日志看到异常信息一样。
- -->
- <convert converter="bean" match="java.lang.StackTraceElement" />
- <convert converter="exception" match="java.lang.Exception"/>
- </allow>
- </dwr>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" > <dwr> <allow> <!-- 下面这部分配置好后,启动tomcat后会生成一个JS文件,在这里可以自定义JS文件名, 我这样写的: javascript="BookList" 习惯用类名来定义,页面调用JS时候就用这个名字. value="com.liang.BookList" 这个用来定义你的类所在位置(有包了加包名,不然找不到)。 --> <create javascript="BookList" creator="new" scope="application"> <param name="class" value="com.liang.BookList"></param> </create> <!-- match="com.liang.Book" 这个用来定义实体类的位置(有包了加包名,第一次做的时候忘记加了, 害了我半天时间得不到值),因为我返回List方法中, 里面封转的是Book类型,Book又有自己的属性ID,name等, JSP页面获得时候就得根据他里面的属性得到值。 value="id,name,pass"这里面主要定义你在JSP页面获得那个属性值时要用到的, --> <convert match="com.liang.Book" converter="bean"> <param name="include" value="id,name,pass"/> </convert> <!-- 下面这个配置主要为了显示异常信息,如果不配置的话,程序中所有的错误, 都只弹出error的对话框,这样我们就看不到详细的错误信息,加大了调试难度, 相对配置的话,就会把Error转换成具体的错误描述来看,就如同你在日志看到异常信息一样。 --> <convert converter="bean" match="java.lang.StackTraceElement" /> <convert converter="exception" match="java.lang.Exception"/> </allow> </dwr>
- <script type='text/javascript' src='dwr/interface/BookList.js'></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/BookList.js'></script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script>
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <html>
- <head>
- <title>My JSP 'index.jsp' starting page</title>
- <script type='text/javascript' src='dwr/interface/BookList.js'></script>
- <script type='text/javascript' src='dwr/engine.js'></script>
- <script type='text/javascript' src='dwr/util.js'></script>
- <script type="text/javascript">
- window.onload=function (){//页面加载时候调用
- BookList.getList(callBackMethod);//BookList是BookList.js这个名字,
- //getList当然是你自己写的方法名,参数是回调下面的函数,
- //这个参数是必须有的, 如果方法里面需要传参数的话,可以在里面加参数
- //比如我根据name查询然后返回List可以写成这种, BookList.getList(name,callBackMethod);
- }
- function callBackMethod(dataList){//dataList可以自定义,是返回的数组名
- alert(dataList.length);//显示返回数组值的长度
- for(var d in dataList){//循环弹出相关的值,当时我做测试时候写的。
- alert("name:"+dataList[d].name);
- alert("pass:"+dataList[d].pass);
- }
- DWRUtil.removeAllRows("table4");//删除table4里面的所有行。DWR里面util.js中的方法。
- DWRUtil.addRows("table4",
- //循环显示数据并自动增加tr,也是DWR里面util.js中的方法。详细使用说明可以去网上找找
- dataList,[function(item){return item.id},
- function(item){
- return "<a target='_blank' href='index.jsp?id="+item.id+"'>"+item.name+"</a>";//显示一个超连接
- },function(item){return item.pass}],{escapeHtml:false} );
- }
- </script>
- </head>
- <body>
- <table border="1"><tr><td>id</td><td>name</td><td>pass</td></tr>
- <tbody id="table4"></tbody>
- </table>
- </body>
- </html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>My JSP 'index.jsp' starting page</title> <script type='text/javascript' src='dwr/interface/BookList.js'></script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script> <script type="text/javascript"> window.onload=function (){//页面加载时候调用 BookList.getList(callBackMethod);//BookList是BookList.js这个名字, //getList当然是你自己写的方法名,参数是回调下面的函数, //这个参数是必须有的, 如果方法里面需要传参数的话,可以在里面加参数 //比如我根据name查询然后返回List可以写成这种, BookList.getList(name,callBackMethod); } function callBackMethod(dataList){//dataList可以自定义,是返回的数组名 alert(dataList.length);//显示返回数组值的长度 for(var d in dataList){//循环弹出相关的值,当时我做测试时候写的。 alert("name:"+dataList[d].name); alert("pass:"+dataList[d].pass); } DWRUtil.removeAllRows("table4");//删除table4里面的所有行。DWR里面util.js中的方法。 DWRUtil.addRows("table4", //循环显示数据并自动增加tr,也是DWR里面util.js中的方法。详细使用说明可以去网上找找 dataList,[function(item){return item.id}, function(item){ return "<a target='_blank' href='index.jsp?id="+item.id+"'>"+item.name+"</a>";//显示一个超连接 },function(item){return item.pass}],{escapeHtml:false} ); } </script> </head> <body> <table border="1"><tr><td>id</td><td>name</td><td>pass</td></tr> <tbody id="table4"></tbody> </table> </body> </html>源文件已经打包好了。
- TestDWR.rar (491.6 KB)
- 下载次数: 180
发表评论
-
mysql binlog 常用命令及问题整理
2013-09-05 14:41 19821:开启binlog日志记录 # log-bin log- ... -
探究mysql预编译
2013-09-05 14:12 1334探究mysql预编译 http://cs-c ... -
Tomcat5.5时区设置
2011-10-21 11:00 1999项目中遇到Tomcat时间跟系统时间不一致的情况,在网上 ... -
再谈forward与redirect
2010-08-25 14:30 1333再谈forward与redirect 1.从地 ... -
解决Tomcat含有中文的文件、图片的不能下载、显示的问题
2010-06-08 13:40 3359这是解决Tomcat含有中文的文件、图片的不能下载、显示的问题 ... -
这是csdn里的一篇博文--十五年,你积累了什么?
2010-05-06 15:24 868这是csdn里的一篇博客。。。以下是原文十五年,你积累了什么? ... -
Eclipse3.2中搭建LOMBOZ+TOMCAT(转)
2010-04-21 10:38 1297找了N个教程,这个最清楚! Eclipse3.2中搭建 ... -
Struts2.1.6 + Spring2.5+Hibernate3.2整合
2010-01-05 10:59 895http://www.cnblogs.com/kay/arch ... -
Apache FileUpload文件上传组件API解析
2009-09-17 13:57 1027关键字: fileupload Java Web开发人员 ...
相关推荐
在本示例中,我们将探讨如何配置DWR,以及如何利用DWR从服务器获取返回类型为List的对象,并在页面上显示这些数据。 首先,我们需要在项目中引入DWR的相关依赖。这通常包括dwr.jar和其相关的库文件。如果你使用的是...
在这个“dwr入门例子 返回list”中,我们学习了如何使用DWR从服务器获取列表数据,并在客户端进行处理和展示。这只是一个基础示例,实际应用中,DWR还能处理更复杂的交互,如文件上传、实时数据推送等,进一步提升...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的双向通信。...通过以上步骤,你可以快速配置并开始使用DWR。阅读`DWR中文文档.pdf`将进一步深入理解DWR的使用和配置细节。
5. **列表数据的处理**:一旦服务端的方法执行完成并返回list,DWR会自动将Java对象转换为JavaScript对象。我们需要遍历这个list,并将其数据绑定到HTML元素上,如表格、列表或其他UI组件。这通常使用JavaScript的...
这篇博客文章“关于使用DWR返回对象List的方法”主要探讨了如何通过DWR框架在Java后端处理数据并以List对象的形式返回给前端JavaScript。 在Web开发中,通常我们需要从服务器获取数据并在客户端展示,DWR通过AJAX...
dwr.xml 文件是 DWR 的核心配置文件,用于定义哪些 Java 类可以被远程访问和如何将 Java 对象转换为 JavaScript 对象本文将详细讲解 dwr.xml 文件的配置和入门使用。 在 dwr.xml 文件中, `<allow>` 标签用于定义...
Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...
这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...
**DWR(Direct Web Remoting)中文文档入门配置** DWR是一种开源JavaScript库,它允许在Web浏览器和Java服务器之间进行直接的、安全的、实时的通信。DWR的使用大大简化了AJAX应用程序的开发,使得前端JavaScript...
- **convert**: 定义数据类型转换,`converter`指定转换器类型,`match`定义匹配哪种类型的Java对象进行转换。 ### 3. Creators Creators决定了DWR如何实例化服务器端的对象。常见的创作者包括: - **new**: 使用...
**DWR(Direct Web Remoting)入门操作手册及DWR包** DWR,全称Direct Web Remoting,是一个开源的Java库,它允许JavaScript在浏览器中直接调用服务器端的Java方法,实现了JavaScript与Java之间的远程方法调用...
通过上述示例可以看出,在DWR中处理List、Set和Map等集合类型的关键在于正确配置DWR XML文件,并编写合适的客户端JavaScript代码来调用服务端的方法及处理返回的数据。这种方式大大简化了前后端之间的数据交换过程,...
在这个场景中,我们关注的是如何在DWR回调函数中处理从服务器返回的`List<Bean>`类型的数据。 首先,我们需要在服务器端定义一个Java方法,该方法会返回一个`List<Bean>`。例如,假设我们有一个名为`User`的Java ...
DWR(Direct Web Remoting)是一个开源的Java库,它允许Web应用程序在浏览器和服务器之间进行实时、异步的数据交换,极大地增强了Web应用的交互性和用户体验。DWR使得JavaScript可以直接调用服务器端的Java方法,就...
要使用DWR返回JSON数据,首先需要在服务器端设置DWR配置。创建一个`dwr.xml`配置文件,在其中定义允许前端访问的Java类和方法。例如: ```xml ``` 这里,`com.example.MyService`是你定义的Java服务类...
DWR (Direct Web Remoting) 是一种开源的Java库,用于在Web应用程序中实现异步JavaScript和XML(AJAX)通信。...通过上述步骤,你可以配置和使用DWR在JSP页面中调用服务层的方法,实现动态数据的交互。
Direct Web Remoting (DWR) 是一种开源的Java库,它...以上就是DWR包的使用入门,从安装配置到实际调用,涵盖了一个完整的DWR应用开发流程。通过学习和实践,你可以更好地理解和利用DWR来构建高效、交互性强的Web应用。
本教程“DWR入门教程及实例(含源代码)”旨在帮助初学者快速掌握DWR的基本概念和使用方法。教程内容可能包括以下几个核心知识点: 1. **DWR概述**:讲解DWR的基本理念,如何通过HTTP协议实现JavaScript与Java之间...
DWR(Direct Web Remoting)是一...通过学习这套DWR入门资料,你将能够熟练地使用DWR创建动态、交互性强的Web应用,提高开发效率,同时提升用户体验。实践中不断探索,理论与实战相结合,将助你在Web开发领域更进一步。