第七章 DWR与SSH整合_第1页
第七章 DWR与SSH整合_第2页
第七章 DWR与SSH整合_第3页
第七章 DWR与SSH整合_第4页
第七章 DWR与SSH整合_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章DWR与SSH整合上节回顾Struts2与Spring整合配置侦听器配置初始化参数与Hibernate整合主要内容DWR框架介绍dwr.xml配置文件DWR与SSH的整合creator属性的值convert属性的使用本讲目标掌握dwr.xml文件的配置creator属性convert属性掌握DWR与SSH整合使用DWR框架简化Ajax开发DWR(DirectWebRemoting)是一个JavaAjax框架DWR框架允许开发人员在客户端通过JavaScript代码调用服务器端的Java方法DWR框架主要由两部分组成:客户端JavaScript代码直接调用服务器端Java方法服务器上运行的DWR核心Servlet负责处理客户端请求,将客户端请求委托到实际的Java对象进行处理,并将结果返回给客户端下载DWR框架DWR的官方站点:/dwr/downloads/index.html各下载项说明:JARFile:该选项仅下载dwr.jar文件WARFile:该选项下载dwr.jar文件及其其他依赖的类库,还包括DWR的使用范例Sources:该选项下载DWR的源文件安装DWR2-1添加dwr.jar文件到WEB-INF/lib目录下修改web.xml文件,添加如下代码<servlet-name>dwr_invoker</servlet-name><servlet-class></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>安装DWR2-2创建dwr.xml文件与web.xml文件位于同一目录该文件用于定义Java类和JavaScript之间的对应关系,将Java类的方法暴露给客户端其结构如下:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEdwrPUBLIC"-//GetAheadLimited//DTDDirectWebRemoting2.0//EN""/dwr/dwr20.dtd"><dwr><allow><createcreator="..."javascript="..."scope="..."><paramname="..."value="..."/><includemethod="…"/><excludemethod="…"/></create><convertconverter="..."match="..."/></allow></dwr>脚本对象名要发布的类名要发布的方法名dwr.xml详解<allow>元素:定义了DWR能够创建和转换的类,是dwr.xml中最重要的元素<create>元素:创建器定义如何将一个Java类转换成JavaScript对象<convert>元素:类型转换器,用于定义Java类型和JavaScript类型之间的对应关系<create>元素的属性和子元素2-1<create>元素的属性:creator属性:DWR内置多个创建器用于处理多种类型Java类javascript属性:在客户端给创建的JavaScript对象命名。该名字将在页面里作为js被导入scope属性:作用域。选项可以是:application,session,request和page。默认为page<create>元素的属性和子元素2-1<create>元素的子元素:<param>元素:用来指定创建器的参数。其中name属性用来指定参数名称,value指定参数的值<include>元素:定义允许访问的方法列表<exclude>元素:定义不允许访问的方法列表,其中method属性指定不被暴露给客户端的方法<convert>元素DWR默认支持的类型有:所有基本类型,boolean、int、double等等包装类,Boolean、Integer等等日期类型,如:java.util.Date和、等数组(存放以上类型的)集合类型(List、Set、Map、Iterator等等)<convert>元素Bean转换器用于完成JavaBean对象和JavaScript对象之间的转换DWR默认关闭Bean转换器如果需要进行JavaBean对象和JavaScript对象之间的转换,需要在dwr.xml中显式设置<convertconverter="bean"match="www.dwrdemo.DwrBean"/>使用DWR框架//暴露给JavaScript的Java类publicclassDwrService{publicDwrBeangetDwrBean(Stringmessage){DwrBeandb=newDwrBean();db.setMessage(message);returndb;}}//封装数据的JavaBeanpublicclassDwrBean{privateStringmessage;publicStringgetMessage(){returnmessage;}publicvoidsetMessage(Stringmessage){this.message="您输入的是:"+message;}}//修改dwr.xml文件内容如下:<dwr><allow><createcreator="new"javascript="DwrDate"><paramname="class"value="java.util.Date"></param></create><createcreator="new"javascript="DwrService"><paramname="class"value="www.dwrdemo.DwrService"></param><!--设定暴露给客户端的方法--><includemethod="getDwrBean"></include></create><!--设定Bean转换器--><convertconverter="bean"match="www.dwrdemo.DwrBean"></convert></allow></dwr><!--导入DWR为Java对象动态生成的JavaScript文件--><scripttype="text/javascript"src="dwr/interface/DwrDate.js"></script><scripttype="text/javascript"src="dwr/interface/DwrService.js"></script><!--导入DWR的JavaScript文件--><scripttype="text/javascript"src="dwr/engine.js"></script><scripttype="text/javascript"src="dwr/util.js"></script><scripttype="text/javascript">functioninit(){//调用Date对象的toString()方法,load为回调函数

DwrDate.toString(load);}functionload(data){document.getElementById("time").innerHTML=data;}functionhellodwr(data){//调用DwrService对象的getDwrBean()方法

//其中data为getDwrBean()方法的参数,hellodwrcallback为回调函数

DwrService.getDwrBean(data,hellodwrcallback);}functionhellodwrcallback(dwrbean){//在dwr.xml中设置了DwrBean的转换器,

//因此在客户端可以通过“.”操作符操作DwrBean中的属性。

document.getElementById("hellodwr").innerHTML=dwrbean.message;}</script><bodyonload="init()"><divid="time"></div><br><inputid=""type="button"onclick="hellodwr(this.value)"value="HelloDwr"/><divid="hellodwr"></div></body>DWR如何简化Ajax开发?engine.jsengine.js对DWR非常重要,它是DWR客户端的核心,用来把动态生成的JavaScript对象转换为服务器上的Java对象该函数库可用于设置一些DWR的全局属性dwr.engine.setTimeout(time),以毫秒为单位设置请求超时的时间dwr.engine.setHttpMethod(method),该方法只能设置两个值POST和GETdwr.engine.setOrdered(boolean),Ajax通常都是异步调用,但服务器响应的顺序与调用顺序往往不同,使用dwr.engine.setOrfered(true)语句,DWR将保证请求的顺序与服务器响应的顺序一致util.jsutil.js文件中包含了一些工具函数,通过这些函数的帮助,将简化JavaScript操作util.js提供一些基本的页面操作函数,通过这些函数可以方便的操作HTML元素util.js文件与DWR框架关系不是特别大,可以在任何不同的网页中使用(即便该工程没有DWR支持)$()函数$()函数根据指定ID查找页面中的HTML元素简单的讲$(ID)=document.getElementById(ID)使用$()使代码更简洁、更清晰getValue()和setValue()函数getValue()函数和setValue()函数用于简化访问和修改HTML元素的值dwr.util.getValue(id):返回HTML元素的值dwr.util.setVlaue(id,value[,options]):根据第一个参数中指定的id找到相应元素,并根据第二个参数value改变该元素的值列表操作函数dwr.util.removeAllOption(id):用于删除列表中的所有项dwr.util.addOptions():用于添加列表项表格操作函数id为table元素的id属性值(最好是tbody元素的id属性值)DWR提供两个函数帮助我们操作表格dwr.util.removeAllRows(id):删除table中所有行dwr.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论