dwr 回调函数执行不到,求助啊,

wubaodong 2008-12-30 10:50:08
看了几个帖子
比如 http://topic.csdn.net/u/20081210/15/a058d657-4d82-4d7b-b9be-d0e4625f0e4a.html?seed=227589686&t=fpbyktfw

不过帖子已经被标记解决了,估计没人看了,所以重新开个贴,在线等帮助。



对DWR不是很明白,只是初步按人家教的步骤来用而已,所以也不知道应该贴出些什么信息来供高手参考。

暂时贴出下面这些信息,也不知道全不全。

public String getAllDepartmentNameByTime(String beginDate,String endDate){
return resultStr;
}
java方法我简化了下,因为我能确定我的方法是可以被正确执行到的,这里因该没什么问题。

web.xml里的配置
<servlet>
<!--
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<description>Direct Web Remoter Servlet</description>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
-->
<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>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>classes</param-name>
<param-value>java.lang.Object</param-value>
</init-param>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>initApplicationScopeCreatorsAtStartup</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>maxWaitAfterWrite</param-name>
<param-value>500</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

其中注视掉的部分是之前用1.0时,之后改成2.0,这个是经理告诉我的,貌似固定格式,应该不会有错吧。

dwr.xml中的配置
<create creator="spring" javascript="departmentManager">
<param name="beanName" value="departmentManager"/>
</create>
对应的spring配置文件也应该没问题,这里就先不贴了。

最后就是页面本身了。

function timeChange(){
departmentManager.getAllDepartmentNameByTime("2008-1-1","2008-10-10",addOpt);
alert("bbbbbbb");
}

function addOpt(departmentNames){
alert('aaaaaaaaaaaaa');
alert(departmentNames);
}
具体的方法内容我删了,只贴出这么一个能说明我遇到的问题的几行代码

现在的问题是,每次alert("bbbbbb");可以正常的执行到,对应的JAVA方法也正常被执行并返回正确的值
但addOpt死活执行不到。

郁闷我一天了,谁来解救下我吧,不胜感激
...全文
789 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
y591174893 2012-04-29
  • 打赏
  • 举报
回复
不错啊
pdw2009 2009-01-13
  • 打赏
  • 举报
回复
谢谢楼主提醒,如果不是你的贴子我估计还要再找二个小时才能弄明白是这个原因
montao 2008-12-30
  • 打赏
  • 举报
回复
wubaodong 2008-12-30
  • 打赏
  • 举报
回复
谢谢楼上的各位了,问题解决了,说出来怕大家笑话,其实是个很白吃的错误,并且现在看来我上面贴的信息显然
不够,也难怪各位高手没看出问题在哪

我的问题还是在JAVA方法里,具体的就是我这个方法还有很多同名的方法,

public String[] getAllDepartmentNameByTime1(String beginDate,String endDate){
return getAllDepartmentNameByTime(beginDate,endDate,"all");
}

public String[] getAllDepartmentNameByTime(String beginDate,String endDate,String status){
List<String> resultList = null;

。。。。。。。。。。。。。

return resultStrs;
}

就是说我的类里本身就有个3个参数的同名方法,那么JS里执行
departmentManager.getAllDepartmentNameByTime("2008-1-1","2008-10-10",addOpt);
是显然是会冲突的。

大家以后引我为戒,慢慢一起成长吧
wubaodong 2008-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liu_zhaoqf 的回复:]
XML code<init-param><param-name>crossDomainSessionSecurity</param-name><param-value>false</param-value></init-param>

在web.xml中加以上代码试试
[/Quote]

加上了,还是不行俄。
wubaodong 2008-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 montao 的回复:]
在后台JAVA代码中打印一下 看看有没有请求到

然后看看你页面有没有导入dwr相关的几个js
[/Quote]

JAVA方法能够正常的被执行

另外我的页面
<script type="text/javascript" src="../dwr/engine.js"></script>
<script type="text/javascript" src="../dwr/interface/departmentManager.js"></script>
也导入了。

montao 2008-12-30
  • 打赏
  • 举报
回复
在后台JAVA代码中打印一下 看看有没有请求到

然后看看你页面有没有导入dwr相关的几个js
liu_zhaoqf 2008-12-30
  • 打赏
  • 举报
回复

<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>


在web.xml中加以上代码试试

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧