看了几个帖子
比如 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死活执行不到。郁闷我一天了,谁来解救下我吧,不胜感激

解决方案 »

  1.   


    <init-param>   
                <param-name>crossDomainSessionSecurity</param-name>   
                <param-value>false</param-value>   
            </init-param>   
    在web.xml中加以上代码试试
      

  2.   

    在后台JAVA代码中打印一下 看看有没有请求到然后看看你页面有没有导入dwr相关的几个js
      

  3.   


    JAVA方法能够正常的被执行另外我的页面
    <script type="text/javascript" src="../dwr/engine.js"></script>
    <script type="text/javascript" src="../dwr/interface/departmentManager.js"></script>
    也导入了。
      

  4.   

    谢谢楼上的各位了,问题解决了,说出来怕大家笑话,其实是个很白吃的错误,并且现在看来我上面贴的信息显然
    不够,也难怪各位高手没看出问题在哪我的问题还是在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); 
    是显然是会冲突的。大家以后引我为戒,慢慢一起成长吧