dwr.xml是这样配置的
<create creator="new" javascript="RoleManageService">
      <param name="class" value="com.bcic.eros.web.rolemanage.service.RoleManageService"/>
    </create> service里面的方法在会执行到
public String getRoleInfo(String usrid) throws BizException{
String strReturn = "<tr><td>角色名</td><td>角色描述</td></tr>";;

if(!"".equals(usrid) && usrid != null){
RoleManageService  rolemanageService = getRoleManageService();
String strBranch_No = rolemanageService.queryBranchNo(usrid);
List listRole =  rolemanageService.queryRoleInfo(strBranch_No);

for(int i = 0; i < listRole.size();i++){
RoleManageDTO dto = (RoleManageDTO) listRole.get(i);
strReturn = strReturn + "<tr><td>" + dto.getRole_id() +"</td><td>" + dto.getDescription() + "</td></tr>";
}
}

strReturn = "<table id=role_table>" + strReturn + "</table>";

return strReturn;
}
页面是这样写的:
<script type='text/javascript' src='dwr/interface/RoleManageService.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script><SCRIPT type="text/javascript" language="javascript">
    RoleManageService.getRoleInfo('<%=userInfoDTO.getUserId()%>',even1);  
   
var even1=function(data)

      alert('aa');
var role_table = document.getElementById("role_table");

alert(role_table);
if( role_table !=  'null' )
{
       role_table.innerHTML = data;
      }
  }  
</SCRIPT>上面的RoleManageService.getRoleInfo能够正常执行,但在回调函数中就不能执行,也就是不会输出'aa'提示信息,这是为什么呢?在线等.

解决方案 »

  1.   

    getRoleInfo方法确定被执行了喵?
      

  2.   

    getRoleInfo是执行了,我跟踪查看了strReturn有值的.
      

  3.   

    <script type='text/javascript' src='dwr/interface/RoleManageService.js'> </script>
    <script type='text/javascript' src='dwr/engine.js'> </script>
    <script type='text/javascript' src='dwr/util.js'> </script> 再加上一行<script type='text/javascript' src='RoleManageService.js'></script> 试试看。
    你在这个方法里面设置一个断点,debug下看可到这个方法里面去了
      

  4.   

    var even1=function(data) LZ这个是什么?
      

  5.   

    var even1=function(data) 
    好象是固定的格式吧,我看到以前的项目里面也是这样调用的,even1就是前面传进去的变量吧,具体怎么回事我也不太清楚,就是看到以前的项目是这样写的.strReturn有值的:
    <table id=role_table><tr><td>角色名</td><td>角色描述</td></tr><tr><td>administrator</td><td>administrator</td></tr><tr><td>ACC</td><td>Finacial Control & Accounting Div.</td></tr><tr><td>Admin</td><td>General Affairs Team</td></tr><tr><td>BP</td><td>Business Promotion Related Div.</td></tr><tr><td>IA</td><td>Internal Audit Div.</td></tr><tr><td>IT</td><td>IT Operation Team</td></tr><tr><td>ITP</td><td>IT Planning Team</td></tr><tr><td>LM</td><td>RMPT & CRMT</td></tr><tr><td>Management</td><td>Management level personnel</td></tr><tr><td>MM</td><td>Market Risk Management Team</td></tr><tr><td>OP1</td><td>Operation Team 1</td></tr><tr><td>OP2</td><td>Operation Team 2</td></tr><tr><td>OP3</td><td>Operation Team 3</td></tr><tr><td>OP4</td><td>Operation Team 4</td></tr><tr><td>OPAT</td><td>Operation Adminstration Team</td></tr><tr><td>OPP</td><td>Operation Planning Team</td></tr><tr><td>QD</td><td>Qingdao Branch</td></tr><tr><td>support</td><td>support</td></tr><tr><td>TD</td><td>Treasury Div</td></tr><tr><td>TJ</td><td>Tianjin Branch</td></tr><tr><td>WX</td><td>Wuxi Branch</td></tr></table>
      

  6.   

    var even1=function(data) 
    好象是固定的格式吧,我看到以前的项目里面也是这样调用的,even1就是前面传进去的变量吧,具体怎么回事我也不太清楚,就是看到以前的项目是这样写的.strReturn有值的:
    <table id=role_table><tr><td>角色名</td><td>角色描述</td></tr><tr><td>administrator</td><td>administrator</td></tr><tr><td>ACC</td><td>Finacial Control & Accounting Div.</td></tr><tr><td>Admin</td><td>General Affairs Team</td></tr><tr><td>BP</td><td>Business Promotion Related Div.</td></tr><tr><td>IA</td><td>Internal Audit Div.</td></tr><tr><td>IT</td><td>IT Operation Team</td></tr><tr><td>ITP</td><td>IT Planning Team</td></tr><tr><td>LM</td><td>RMPT & CRMT</td></tr><tr><td>Management</td><td>Management level personnel</td></tr><tr><td>MM</td><td>Market Risk Management Team</td></tr><tr><td>OP1</td><td>Operation Team 1</td></tr><tr><td>OP2</td><td>Operation Team 2</td></tr><tr><td>OP3</td><td>Operation Team 3</td></tr><tr><td>OP4</td><td>Operation Team 4</td></tr><tr><td>OPAT</td><td>Operation Adminstration Team</td></tr><tr><td>OPP</td><td>Operation Planning Team</td></tr><tr><td>QD</td><td>Qingdao Branch</td></tr><tr><td>support</td><td>support</td></tr><tr><td>TD</td><td>Treasury Div</td></tr><tr><td>TJ</td><td>Tianjin Branch</td></tr><tr><td>WX</td><td>Wuxi Branch</td></tr></table>
      

  7.   

    <SCRIPT type="text/javascript" language="javascript"> 
        RoleManageService.getRoleInfo(' <%=userInfoDTO.getUserId()%>',even1);  
      
    function(event1){ 
    var role_table = document.getElementById("role_table"); alert(role_table); 
    }  
    </SCRIPT>
    LZ先试试把这个运行下看看
      

  8.   


    var even1=function(data) {}貌似你回调函数定义有问题啊!
    用下面这个吧:
    function even1(data){}
      

  9.   

       RoleManageService.getRoleInfo(' <%=userInfoDTO.getUserId()%>',function callback(data) 

        alert('aa'); 
    var role_table = document.getElementById("role_table"); alert(role_table); 
    if( role_table !=  'null' ) 

        role_table.innerHTML = data; 
        } 
    }  
    );  
      试拭这样写吧
      

  10.   

    好了,改成function even1(data){} 就好了,挺怪的,其他页面也是我上面那样调用的.
      

  11.   

    [code=Java]
    <SCRIPT type="text/javascript" language="javascript"> 
    RoleManageService.getRoleInfo(' <%=userInfoDTO.getUserId()%>',function(){ 
    alert('aa'); 
    var role_table = document.getElementById("role_table"); 
    alert(role_table); 
    if( role_table !=  'null' ) { 
        role_table.innerHTML = data; 
    }   
    });  
    </SCRIPT> 
    code]
    试试
      

  12.   


    <SCRIPT type="text/javascript" language="javascript"> 
    RoleManageService.getRoleInfo(' <%=userInfoDTO.getUserId()%>',function(data){ 
    alert('aa'); 
    var role_table = document.getElementById("role_table"); 
    alert(role_table); 
    if( role_table !=  'null' ) { 
        role_table.innerHTML = data; 
    }  
    });  
    </SCRIPT> 
      

  13.   

    遇到个跟楼主类似的问题,求助啊。貌似楼主的问题是把回调函数定义方法改了就好用了可我遇到的是在这种情况下也不好用对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死活执行不到。郁闷我一天了,谁来解救下我吧,不胜感激