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'提示信息,这是为什么呢?在线等.
<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'提示信息,这是为什么呢?在线等.
<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下看可到这个方法里面去了
好象是固定的格式吧,我看到以前的项目里面也是这样调用的,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>
好象是固定的格式吧,我看到以前的项目里面也是这样调用的,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>
RoleManageService.getRoleInfo(' <%=userInfoDTO.getUserId()%>',even1);
function(event1){
var role_table = document.getElementById("role_table"); alert(role_table);
}
</SCRIPT>
LZ先试试把这个运行下看看
var even1=function(data) {}貌似你回调函数定义有问题啊!
用下面这个吧:
function even1(data){}
{
alert('aa');
var role_table = document.getElementById("role_table"); alert(role_table);
if( role_table != 'null' )
{
role_table.innerHTML = data;
}
}
);
试拭这样写吧
<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]
试试
<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>
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死活执行不到。郁闷我一天了,谁来解救下我吧,不胜感激