六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 39|回复: 0

当DWR遇到泛型——如何避免泛型造成的参数解析错误

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-1-29 11:49:42 | 显示全部楼层 |阅读模式
  在通过ajax进行远程调用方面,存在两种不同的方式,一种是json rpc,一种是dwr方式的私有转换。从优雅性上而言,json-rpc其实要好一些的,不过dwr仍然得到了广泛的应用。
   这些框架提供的最大的好处是提供了js的对象到java对象的双向的透明转换,为我们的数据传递和获取提供了非常大的方便。但是在实际项目的使用中,遇到了因为泛型而导致的dwr调用的问题,下面进行详细的说明,以及给出了在自己的项目中如何规避该问题。
 
   1.dwr对于泛型的支持:
     对于自定义的数据对象,dwr要求提供一个对应的convert配置,并要求该类符合java规范的要求。同时,通过配置signature,dwr可以使用java的泛型容器类。
 
 
  2.自定义对象中的泛型问题:
 
      但是,对于自定义的类中涉及到的泛型问题,会导致dwr无法正确解析并导致转换失败。
 
     在自己的项目中,为了方便,定义了一个用于所有映射类的泛型父类,其中提供了get/set方法,但是在调用时,传入对象无法被正确转换,经过跟踪,确认是因为泛型而导致无法获取到真正的类型。
 
   解决办法:在父类中去掉get/set方法,而在子类中提供具体类型的get/set方法
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表