`
aokunsang
  • 浏览: 816049 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DWR学习(配置文件以及其他工具js的详解)

    博客分类:
  • dwr
阅读更多

一、 简单的说说dwr.xml的配置文件、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>
    <init>
    	<converter id="..." class="..."/>
    	<creator id="..." class="..."/>
    </init>
	<allow>
	   <convert match="com.aokunsang.dwr.bean.PersonBean" converter="bean"></convert>
	   <create javascript="getPerson" creator="new">
	   	  <param name="class" value="com.aokunsang.dwr.server.DwrServer"></param>
	      <include method="print"/>
	      <include method="getLength"/>
	      <include method="getAllPerson"/>
	   </create>
	</allow>
	<signatures>
		<![CDATA[
			import java.util.List;
			getPerson.getLength(List<String> list);
		]]>
	</signatures>
</dwr>

 1、<init>   大多数情况下你不需要使用这个标签,因为默认的dwr.xml已经为我们提供了很多常用的creator和converter,详细内容可参见dwr.jar中的org.directwebremoting包中的dwr.xml文件,

  <init>
    <creator id="jsf" class="org.directwebremoting.faces.JsfCreator"/>
    <creator id="none" class="org.directwebremoting.create.NullCreator"/>
    <creator id="new" class="org.directwebremoting.create.NewCreator"/>
    <creator id="pageflow" class="org.directwebremoting.beehive.PageFlowCreator"/>
    <creator id="spring" class="org.directwebremoting.spring.SpringCreator"/>
    <creator id="script" class="org.directwebremoting.create.ScriptedCreator"/>
    <creator id="struts" class="org.directwebremoting.struts.StrutsCreator"/>
    <creator id="ejb3" class="org.directwebremoting.create.Ejb3Creator"/>

    <converter id="null" class="org.directwebremoting.convert.NullConverter"/>
    <converter id="enum" class="org.directwebremoting.convert.EnumConverter"/>
    <converter id="primitive" class="org.directwebremoting.convert.PrimitiveConverter"/>
    <converter id="bignumber" class="org.directwebremoting.convert.BigNumberConverter"/>
    <converter id="string" class="org.directwebremoting.convert.StringConverter"/>
    <converter id="array" class="org.directwebremoting.convert.ArrayConverter"/>
    <converter id="map" class="org.directwebremoting.convert.MapConverter"/>
    <converter id="collection" class="org.directwebremoting.convert.CollectionConverter"/>
    <converter id="date" class="org.directwebremoting.convert.DateConverter"/>
    <converter id="dom" class="org.directwebremoting.convert.DOMConverter"/>
    <converter id="dom4j" class="org.directwebremoting.convert.DOM4JConverter"/>
    <converter id="jdom" class="org.directwebremoting.convert.JDOMConverter"/>
    <converter id="xom" class="org.directwebremoting.convert.XOMConverter"/>
    <converter id="servlet" class="org.directwebremoting.convert.ServletConverter"/>
    <converter id="bean" class="org.directwebremoting.convert.BeanConverter"/>
    <converter id="object" class="org.directwebremoting.convert.ObjectConverter"/>
    <converter id="hibernate2" class="org.directwebremoting.hibernate.H2BeanConverter"/>
    <converter id="hibernate3" class="org.directwebremoting.hibernate.H3BeanConverter"/>
    <converter id="url" class="org.directwebremoting.convert.URLConverter"/>
    <converter id="exception" class="org.directwebremoting.convert.ExceptionConverter"/>
    <converter id="miniException" class="org.directwebremoting.convert.MinimalistExceptionConverter"/>
  </init>

 这种方式很像Java中的import语句。多数类需要在使用前先import一下,但是import的类并不表明这个类已经被使用了

2、<convert>

      a、match属性是bean或者你需要转换的某种Java类型的全类名;

      b、converter属性就是你要转换的类型。详见dwr.jar中的org.directwebremoting包中的dwr.xml文件中的<init>,

      c、还有一个param属性,针对不同的converter,param参数不同。如:

<convert match="com.aokunsang.dwr.bean.PersonBean"converter="bean">
   <param name="exclude或者include" value="property1, property2" />
</convert>

 该标签的意思是:包含或者不包含bean中的哪些属性、

3、<create>

     a、creator属性使用什么样的构造器创造类的实例,默认为new。还有null[不创建对象],可能的原因有:调用该类的方法是静态方法,dwr调用创建器之前先检查一下该方法是否为静态。详见dwr.jar中的org.directwebremoting包中的dwr.xml文件中的<init>。

     b、javascript属性在浏览器里给你创建的对象命名,避免使用JavaScript保留字、

 这个名字与导入的js名字一致,

	<script type="text/javascript" src="<%=path%>/dwr/interface/getPerson.js"></script>
	<script type="text/javascript" src="<%=path%>/dwr/engine.js"></script>

 还有在js中调用service类中的方法时的名字也要一致。

function printPerson(){
		person = {};
		person.name = "jack";
		person.age = "12";
		person.gender = "男";
		getPerson.print(person,{callback:function(data){alert(data);}})
	}

 

function getCount(){
		var arr = new Array();
		arr[0]=12;
		arr[1]=11;
		arr[2]=14;
		getPerson.getLength(arr,{callback:function(data){alert(data);}})
	}

     c、param指定创建器的参数,不同的创建器参数不同。

     d、include、exclude:include包含哪些方法,其他的不包含,默认该类中的方法全部包含。exclude反之、

4、<signatures>

DWR使用反射机制在转换过程中找到它应该使用的类型。有时候类型的信息无法获得【如泛型,dwr2.0引入了泛型】,在这种情况下你要在此处用方法签名给予暗示。

经测试,如果你的泛型为简单类型,如String,Integer等。<signatures>不写可以正常运行,不过控制台会有警告提示,上篇博文中的实例就可以不写【大家可以试试】。

有一些数据类型不需要我们import,如:String,Map等,详见dwr.jar中的org.directwebremoting包中的dwr.xml文件中的<allow>、

 

二、 再了解一下dwr的工具js,engine.js、

它有很多方法,在这里只说个别常用的、

 1、DWREngine.setXXX  设置全局变量,如:DWREngine.setTimeout(3000);

      也可以设置局部的超时时间:如调用回调函数时,可以以对象的形式设置超时,

function getCount(){
		var arr = new Array();
		arr[0]=12;
		arr[1]=11;
		arr[2]=14;
		getPerson.getLength(arr,
		{
		 callback:function(data){alert(data);},
		 timeout:3000
		 })
	}

 2、DWREngine.beginBatch()和DWREngine.endBatch();这两个方法是同时出现的,如果没有endBatch(),则所有的远程调用都会一直出于队列中。

功能:用来批量执行远程调用来减少反应时间。DWREngine.endBatch()可以设置超时,如:DWREngine.endBatch({timeout:3000});

3、顺序调用DWREngine.setOrdered(Boolean),默认为false、因为Ajax是异步调用,所以远程调用不会按照一定的顺序返回结果,如果你设置了setOrdered(true),dwr将严格按照发送的顺序返回结果,即:DWR会在旧的请求安全无误的返回结果后才会发送新的请求、

【个人建议】:设置为true时,如果一个请求丢失,那么浏览器将会一直处于等待该请求的返回而没有反应、会大大降低你的应用程序的速度,所以在使用之前要考虑好后果,三思而后行、

 

后续:对于util.js没有了解,大致看了一下,感觉它和jquery一样,对html页面的一些操作,个人感觉还是Jquery使用方便,有空了再看看dwr提供的util.js。

分享到:
评论

相关推荐

    DWR配置文件详解,DWR配置

    **DWR配置文件详解** Direct Web Remoting (DWR) 是一种开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行双向通信。DWR的核心配置文件是`dwr.xml`,该文件定义了DWR允许访问的Java对象、...

    dwr配置文件详解

    在DWR配置文件中,主要分为以下几个部分: 1. **DOCTYPE声明**: 首先,`&lt;!DOCTYPE&gt;`声明指定了DWR的文档类型,这是对DWR版本的引用,确保解析器知道如何解析配置文件。在这个例子中,它引用的是DWR 1.0的DTD...

    dwr 配置文件详解

    ### dwr 配置文件详解 #### 一、概述 Direct Web Remoting (DWR) 是一种开源框架,它简化了客户端JavaScript与服务器端Java之间的交互。通过DWR,开发者可以直接从JavaScript调用服务器端的方法,而无需使用传统的...

    DWR配置文件详解

    ### DWR配置文件详解 #### 一、基本概念与术语 在深入了解DWR配置文件之前,我们首先需要明确几个核心概念: 1. **参数转换**(Conversion):DWR能够处理客户端与服务器端的数据交互,这包括将客户端的...

    DWR.xml配置文件说明

    #### 一、DWR配置文件结构与作用 DWR(Direct Web Remoting)是一个开源的Ajax框架,它允许在浏览器端JavaScript代码直接调用服务器端Java方法,从而简化了传统的AJAX编程。DWR.xml是DWR的核心配置文件,用于定义...

    dwr配置文件!开发,培训,学习

    【DWR配置文件详解】 DWR(Direct Web Remoting)是一种强大的AJAX(Asynchronous JavaScript and XML)框架,专门用于Java开发,它允许在Web浏览器中通过JavaScript直接调用后台的Java方法,实现了客户端和服务器...

    dwr配置和使用详解

    `dwr.xml`是DWR的核心配置文件,它定义了哪些Java类和方法可以被JavaScript访问。例如: ```xml &lt;dwrfactory name="dwr"&gt; &lt;!-- 允许访问TestService类的sayHello方法 --&gt; &lt;create creator="new" javascript=...

    DWR学习案例详解(数据库)

    要开始使用DWR,你需要在项目中引入DWR相关的jar包,然后在服务器端创建一个DWR配置文件(通常为dwr.xml),在这个文件中定义哪些Java方法可以被JavaScript调用。接下来,你需要在Java类中编写这些可被远程调用的...

    dwr技术详解.doc

    2. **JavaScript调用**:首先需要引入DWR生成的JavaScript接口文件(如TestClass.js)、引擎文件(engine.js)和工具文件(util.js)。然后,可以直接调用生成的JavaScript对象及其方法。 对于具有简单返回值的Java...

    dwr配置参考,java编程工具中

    3. **`&lt;dwr&gt;`**:这是DWR配置文件的根标签,所有其他配置项都位于此标签内。 4. **`&lt;allow&gt;`**:该标签用于指定哪些类的对象可以通过DWR进行远程调用。在这个例子中,有两个类被允许通过DWR访问,分别是`webapp....

    DWR笔记 DWR.xml配置文件说明书 DWR技术分析

    **DWR.xml配置文件详解** 1. **DWR.xml结构**:DWR.xml文件通常位于Web应用的WEB-INF目录下,它是DWR引擎的配置中心,定义了哪些Java类可以被远程调用,以及如何处理这些调用。文件主要由三部分组成:`&lt;dwr&gt;`根元素...

    Dwr配置详解.doc

    DWR配置详解 DWR(Direct Web Remoting)是一种基于Java的AJAX框架,用于实现Web应用程序的远程方法调用。下面是DWR配置的详细解释: 一、配置环境 1. 导入DWR的依赖jar包,包括dwr.jar和commons-logging.jar。 2...

    DWR配置详解

    在DWR配置中, dwr.xml 文件扮演着核心角色,它负责定义远程Bean的配置信息,包括创造器、参数、范围、身份验证等。 ### 术语 在DWR配置中,有一些重要的术语需要理解: * 参数(Parameter):在DWR中,参数是指...

    DWR课件 PPT DWR的配置及入门

    - **dwr.xml**: 这是DWR的核心配置文件,定义了哪些Java类和方法可以被JavaScript访问。在这里,你可以指定允许的远程对象、安全设置以及转换器和验证器等。 - **web.xml**: 在Servlet容器的配置文件中,需要添加...

    (总)DWR学习下载

    1. **JavaScript库的引入**:在HTML文件中引入DWR的JavaScript库,如`dwr.engine.js`,以便在客户端使用DWR功能。 2. **接口定义**:在服务器端定义一个或多个Java接口,这些接口将被JavaScript调用。 3. **异步与...

    dwr.xml文件

    #### 三、DWR配置详解 1. **Servlet配置**:DWR通过`DWRServlet`处理客户端请求。`DWRServlet`必须被正确配置,包括其名称、类名以及映射的URL路径等。 2. **初始化参数**:初始化参数用于设置DWR的行为特性,例如...

    DWR.xml配置文件说明书.txt

    任何一个DWR配置文件都需要包含特定的DOCTYPE声明,这是为了确保文件的格式正确并遵循DWR规定的DTD(Document Type Definition)标准。该DTD定义了DWR配置文件的结构和元素。具体格式如下: ```xml &lt;!DOCTYPE dwr ...

    DWR使用步骤详解DWR使用步骤详解

    5. **引入JavaScript库**:在HTML文件中引入DWR生成的JavaScript接口文件(`testClass.js`)、引擎文件(`engine.js`)以及工具函数库(`util.js`)。 6. **调用Java方法**:在JavaScript代码中,可以直接调用如`...

Global site tag (gtag.js) - Google Analytics