signatures段使DWR能确定集合中存放的数据类型。例如下面的定义中我们无法知道list中存放的是什么类型。

public class Check
{
public void setLotteryResults(List nos)
{
...
}
}

signatures段允许我们暗示DWR应该用什么类型去处理。格式对以了解JDK5的泛型的人来说很容易理解。

<signatures>
<![CDATA[
import java.util.List;
import com.example.Check;
Check.setLotteryResults(List<Integer> nos);
]]>
</signatures>

DWR中又一个解析器专门来做这件事,所以即便你的环境时JDK1.3 DWR也能正常工作。

解析规则基本上会和你预想规则的一样(有两个例外),所以java.lang下面的类型会被默认import。

第一个是DWR1.0中解析器的bug,某些环境下不能返回正确类型。所以你也不用管它了。

第二个是这个解析器时"阳光(sunny day)"解析器。就是说它非常宽松,不想编译器那样严格的保证你一定正确。所以有时它也会允许你丢失import:

<signatures>
<![CDATA[
import java.util.List;
Check.setLotteryResults(List<Integer>);
]]>
</signatures>

将来的DWR版本会使用一个更正式的解析器,这个编译器会基于官方Java定义,所以你最好不要使用太多这个不严格的东西。

signatures段只是用来确定泛型参数中的类型参数。DWR会自己使用反射机制或者运行时类型确定类型,或者假设它是一个String类型。所以:

不需要signatures - 没有泛型参数:

public void method(String p);
public void method(String[] p);

需要signatures - DWR不能通过反射确定:

public void method(List<Date> p);
public void method(Map<String, WibbleBean> p);

不需要signatures - DWR能正确的猜出:

public void method(List<String> p);
public void method(Map<String, String> p);

不需要signatures - DWR可以通过运行时类型确定:

public List<Date> method(String p);

没有必要让Javascript中的所有对象的key都是String类型 - 你可以使用其他类型作为key。但是他们在使用之前会被转换成String类型。DWR1.x用Javascript的特性把key转换成String。DWR2.0可能会用toString()方法,在服务段进行这一转换。

dwr-signatures相关推荐

  1. 向DWR传递map/返回map/list/set等(返回对象的处理)

    1.调用没有返回值和参数的JAVA方法 1.1.dwr.xml的配置 <dwr> <allow> <create creator="new" java ...

  2. 我的DWR学习(二)

    DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样. ...

  3. dwr的使用和ajax的标签使用 (未读)

    非常详细介绍了DWR和ajax标签的使用.及真实配置 分为两个部分:dwr的原理和应用/真实环境使用(在文章的最后面).基本上适合所有人查阅 DWR的作用:DWR是一个可以允许你去创建AJAX WEB ...

  4. dwr的使用和ajax的标签使用

    非常详细介绍了DWR和ajax标签的使用.及真实配置 分为两个部分:dwr的原理和应用/真实环境使用(在文章的最后面).基本上适合所有人查阅 DWR的作用:DWR是一个可以允许你去创建AJAX WEB ...

  5. [DWR(Ajax)]DWR使用笔记

    [DWR(Ajax)]DWR使用笔记 把老师发的文档转载分享一下. DWR是一个框架,简单的说就是能够在javascript直接调用java方法,而不必去写一大堆的javascript代码.它的实现是 ...

  6. DWR重温 DWE例子 如下

    第一步 导包 第二步配置 web.xml 添加如下 <!-- 配置dwr -->     <servlet>         <servlet-name>dwr&l ...

  7. 【AJAX】DWR使用总结

    这两天学了下DWR,现在总结一下. DWR是方便使用AJAX连接JS和JAVA的的一个框架,把服务器端 Java 对象的方法公开给JavaScript 代码. 如果是用dwr2.0的jar包,还需要同 ...

  8. 【DWR系列04】- DWR配置详解

    一.DWR配置简介 虽然使用DWR只需要简单的配置,但是DWR的功能还是很多的,如果要使用这些功能就要对DWR的配置进行了解.配置主要有web.xml,dwr.xml和注解配置.下面依次介绍. 二.D ...

  9. dwr配置文件dwr.xml详解

    本人对dwr 中文文档关于dwr.xml做的一个整理,纯粹体力活,有用得着的朋友别忘顶一下,留个联系方式一起交流学习! dwr.xml是DWR的配置文件.默认情况下,应该把它放到WEB-INF目录(w ...

  10. DWR的学习文档(Hello World,类型转换,Spring,Annotation)

    來源:http://www.iteye.com/topic/40313 DWR是作为远程调用的ajax框架,将服务端的java类,方法和浏览器的javascript的类,方法对应起来.现在官方最新的版 ...

最新文章

  1. gensim models.word2vec – Word2vec embeddings API
  2. 数字图像处理:第十三章 图象复原
  3. linux内核杂记(10)-进程调度(5)
  4. linux md5sum获取文件指纹数值并使用cut切割
  5. Python网络编程—TCP套接字之HTTP传输
  6. vue.js能美化界面吗_vue将单页面改造成多页面应用的方法
  7. python commands_Windows环境下使用python的commands.getstatusoutput
  8. java springboot aop_Spring Boot实战系列(3)AOP面向切面编程
  9. Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
  10. html5自定义组件样式,Taro 自定义组件样式不生效及解决方案
  11. 一、Java快速入门
  12. 游戏的交互设计与心理学应用
  13. 台湾芯唐(华邦)强势推出:W79E2051/W79E4051,兼容AT89C2051/4051
  14. 用Python来实现2~7阶行列式的计算
  15. 安卓手机怎么投屏台式计算机WIN7,手机怎么投屏到win7电脑
  16. 股票放量一定就是好事么,为什么从爆大量的高位开始下跌?
  17. android 录屏功能,Android开发如何实现录屏小功能
  18. 有人知道要怎么用c++提取出文本里面的信息吗,例如把这个表格里的所有住户账号,密码提取出来
  19. 到底什么是5G LAN?
  20. 前景检测算法(七)--ViBe算法

热门文章

  1. 【matplotlib + opencv】关于opencv和matplotlib绘制图像时,出现色差色偏的问题探讨,思考,解决。(深度学习数据包plt.imshow绘制的图像底色偏绿蓝偏黄)
  2. 怎么选择触摸液晶广告机?
  3. concurrent mode failure
  4. Anaconda创建虚拟环境时报错 InvalidArchiveError Error with archive D:\\(anaconda的路径)\\pkgs\\vs2015_runtime
  5. Python爬取微信公众号文章、标题、文章地址
  6. 全屋智能抢占“中控”,华为、海尔、小米们谁离用户最近?
  7. Ubuntu安装 apache2 mysql php5 freeradius
  8. VS2017中MFC的C++设计中给其它窗口发中文消息
  9. 终于找到了PyMuPDF不能提取文字的原因……它只是个包装
  10. 关于国外主机PING值