关键字: ext dwr
与Ext一起使用DWR时的疑难问题和解答
用Ext作为客户端界面框架,Java后端使用DWR(Direct Web Remoting)与Ext通讯,使AJAX应用的开发
变得非常容易。本文列出了开发过程中可能会遇到的问题和解决办法(每个问题几乎都花去了我们不少的
时间,才找到解决办法)。本文不准备介绍如何让DWR与Ext集成,如果您对这方面的资料有兴趣,请参见Ext官方论坛中的例子( Ext + Java + Spring +
DWR
)。
1. DWR客户端返回值总是null,但跟踪后台Java方法中却有返回值。
这个问题发生在返回值类型为POJO(Plain Old Java Objects
)的情况,检查
web.xml,原因就是没有为DWR定义对应的返回值类。
xml 代码
-
<
servlet
>
-
<
servlet-name
>
dwr-invoker
<!-- -->servlet-name
>
-
<
display-name
>
DWR
Servlet
<!-- -->display-name
>
-
<
description
>
Direct
Web Remoter Servlet
<!-- -->description
>
-
<
servlet-class
>
org.directwebremoting.servlet.DwrServlet
<!-- -->servlet-class
>
-
。。。
-
<
init-param
>
-
<
param-name
>
classes
<!-- -->param-name
>
-
<
param-value
>
-
com.divo.docmnt.dto.ContentData, <
--
这里没有添加对应的POJO,或者两个POJO之间没有用逗号分隔
-
。。。
-
<!-- -->param-value
>
-
<!-- -->init-param
>
-
<!-- -->servlet
>
2. 调用DWR客户端方法时,弹出一个alert框,错误信息只显示'Error'
如果你使用FireBug,则可以看到错误信息:Error: undefined,
Error,但通常无法直接确定错误原因。你可以从下面两个方面查找错误原因:
(1)JS方法中传递到后台的参数值,类型为undefined,或者类型与Java后台方法中对应参数要求的类型不同(如要求的是
String,传递了Integer类型等)。
(2)如果传递的参数值类型是POJO类型, 则要检查在web.xml中是否定义了对应的类。
3. DWR报告“The specified call count is not a number: null”错误
这个错误的完整信息如下:
js 代码
-
if
(window.dwr) dwr.engine._remoteHandleBatchException({
name:'org.directwebremoting.extend.ServerException'
-
-
, message:'The specified call count is not a
number: null
' });
-
-
else
if
(window.parent.dwr)
window.parent.dwr.engine._remoteHandleBatchException({
name:'org.directwebremoting
-
-
.extend.ServerException', message:'The
specified call count is not a number: null
'
});
错误原因实际上与上面一个问题类似,也可以从下面两个方面查找:
(1)JS方法中传递到后台的参数值,类型为undefined或null,或者类型与Java后台方法中对应参数要求的类型不同。
(2)如果传递的参数值类型是POJO类型, 则要检查在web.xml中是否定义了对应的类。
4. 使用 DWRProxy
时,Ext网格一直在加载数据,不能结束
代码例子:
js 代码
-
ds =
new
Ext.data.Store({
-
proxy: new
Ext.data.DWRProxy(BasisFacade.findAllComponents,
false
),
-
reader: new
Ext.data.ListRangeReader(
-
{id:'id'
-
,totalProperty:'totalSize'
-
,successProperty:'success'},
-
recordType),
-
remoteSort: false
-
});
问题的原因在于传递的参数值有误。如果不需要分页,则实例化 DWRProxy 时,其第二个参数的值应该为 false, 而且 remoteSort
配置项的值也要设置成 false。
分享到:
相关推荐
ext js配合dwr在java中的用法
xjs dwr spring 强强联姻 博文链接:https://lib.iteye.com/blog/150208
使用注解整合ext dwr spring hibernate
使用ext3.0 实现 GridPanel 分页显示,调用后台数据 ,格式为json,数据使用 xml 无数据库下载就可以运行,与dwr结合
掏钱学EXT2.0+DWR中文文档+Spring Framework 开发参考手册
学习Ext dwr 的好例子,里面有mysql数据库建表语句。使用ext书写界面。
如何实现前台使用Ext技术,dwr作为通信通道后Ext的分页问题,主要采用DWRProxy实现。
一个ext+dwr 的例子
AJAX 入门视频之 Ext 2.0.1 & DWR 1表格实时编辑器实例 AJAX 入门视频之 MyEclipse 6 开发的 Ext 2.0.1 & DWR 1表格实时编辑器示例 2008-1-27 说实话, 我也是特别懒的人, 很早就想看看 Ext, 尤其是做一个实时...
NULL 博文链接:https://docs.iteye.com/blog/324687
AJAX整理实例,EXT框架,DWR框架
ext、dwr、hibernate的整合
Ext 2.0.1 & DWR 1入门表格实时编辑器实例.rar 无需数据库,入门首选!
ext结合dwr的简单使用,直接部署就可以使用
1.DWR 和 Ext 简单例子综合(EXT 2 和 DWR 1 表格编辑控件示例(无数据库版本)) 2.EXT 2 表格编辑控件示例(静态页面,与Java无关版本) 3.文档团队在线通讯录(Ext + DWR + MySQL 4.DWR 检查注册用户名是否存在
EXT + DWR 使用实例
网上对EXT2+dwr生成树的学习资源很多,可惜基本上都没有完整的代码.为方便大家学习,特供上源代码,多谢大家支持!
用到的技术包括Spring,ext,dwr等,数据库是mysql5.0。包含简单的三个Case:人事管理,机构管理,用户管理,适合初学者熟悉spring ext dwr.
Spring_Ext_DWR_Project,基于spring,ext,dwr,内附详细的注解,完整的代码,直接copy到使用,大家学习使用