`

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

阅读更多

  在通过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方法

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics