<html>
<head>
<script type='text/javascript' src='dwr/interface/getBizByBizClass.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
function test(bizClassId){
getBizByBizClass.searchBizByBizClassIdUseDWR(bizClassId,
function (value){
DWRUtil.removeAllOptions("opts");
DWRUtil.addOptions("opts", value, 'bizId', 'bizName');
}
);
}
</script>
</head>
<body>
<input type="text" onblur="test('1');" name="abc">
<select id="opts"></select>
</body>
</html>
此JSP放在/WebRoot下没问题,当放入/WebRoot/jsp下就报js错误:对象不支持此属性或方法
<head>
<script type='text/javascript' src='dwr/interface/getBizByBizClass.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
function test(bizClassId){
getBizByBizClass.searchBizByBizClassIdUseDWR(bizClassId,
function (value){
DWRUtil.removeAllOptions("opts");
DWRUtil.addOptions("opts", value, 'bizId', 'bizName');
}
);
}
</script>
</head>
<body>
<input type="text" onblur="test('1');" name="abc">
<select id="opts"></select>
</body>
</html>
此JSP放在/WebRoot下没问题,当放入/WebRoot/jsp下就报js错误:对象不支持此属性或方法
<script type='text/javascript' src='dwr/engine.js'> </script>
<script type='text/javascript' src='dwr/util.js'> </script>
这些都写成相对路径了
改成绝对路径
<script type='text/javascript' src='/dwr/interface/getBizByBizClass.js'> </script>
<script type='text/javascript' src='/dwr/engine.js'> </script>
<script type='text/javascript' src='/dwr/util.js'> </script>
你的 文件夹dwr 要在 WebRoot 目录下哦
<script type='text/javascript' src='../dwr/interface/getBizByBizClass.js'> </script>
<script type='text/javascript' src='../dwr/engine.js'> </script>
<script type='text/javascript' src='../dwr/util.js'> </script>
web.xml<listener>
<listener-class>
org.directwebremoting.servlet.DwrListener
</listener-class>
</listener>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class> <init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
在dwr/interface/getBizByBizClass.js 前面加上工程名
这跟 /项目名称/dwr/。一样的哦
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'> </script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'> </script> 这样试下
<script type='text/javascript' src='dwr/interface/getBizByBizClass.js'> </script>
我几乎试了所有的<%
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
%>
<script type='text/javascript' src=" <%=basePath%>/dwr/interface/getBizByBizClass.js"></script>
<script type='text/javascript' src=" <%=basePath%>/dwr/engine.js"></script>
<script type='text/javascript' src=" <%=basePath%>/dwr/util.js"></script><script type='text/javascript' src='dwr/interface/getBizByBizClass.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='/DLS_Project/dwr/interface/getBizByBizClass.js'></script>
<script type='text/javascript' src='/DLS_Project/dwr/engine.js'></script>
<script type='text/javascript' src='/DLS_Project/dwr/util.js'></script><script type='text/javascript' src="<%=request.getContextPath()%>/dwr/interface/getBizByBizClass.js"></script>
<script type='text/javascript' src="<%=request.getContextPath()%>/dwr/engine.js"></script>
<script type='text/javascript' src="<%=request.getContextPath()%>/dwr/util.js"></script><script type='text/javascript' src='../dwr/interface/getBizByBizClass.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='${pageContext.request.contextPath}/dwr/interface/getBizByBizClass.js'> </script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'> </script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'> </script>
缓存文件放在哪儿?DWR的JS是在JAR包里,动态生成的在哪儿?
function test(bizClassId){
alert(bizClassId);//确认进入方法
//这里和你getBizByBizClass下的方法名字searchBizByBizClassIdUseDWR是否有异???
getBizByBizClass.searchBizByBizClassIdUseDWR(bizClassId,
function (value){
alert(value); //是否进入这里??
//DWRUtil.removeAllOptions("opts");
//DWRUtil.addOptions("opts", value, 'bizId', 'bizName');
}
);
}
一步一步试下,不用急呢
那会不会是包的问题,我用的是DWR3。还有我写的WEB.XML有问题吗?
<listener>
<listener-class>
org.directwebremoting.servlet.DwrListener
</listener-class>
</listener> <servlet>
<servlet-name>dwr-invoker </servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class> <init-param>
<param-name>debug </param-name>
<param-value>true </param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>dwr-invoker </servlet-name>
<url-pattern>/dwr/* </url-pattern>
</servlet-mapping>
在到达getBizByBizClass.searchBizByBizClassIdUseDWR(bizClassId这一步时报:对象不支持此属性或方法
还是不行,提示getBizByBizClass未定义
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<allow>
<create creator="new" javascript="Exercise">
<param name="class" value="com.test.dwr.getBizByBizClass"/> 你自己的路径来定
</create>
</allow>
然后这个getBizByBizClass类下面是否有searchBizByBizClassIdUseDWR这个方法
注意大小写保持一致
如果用到了
放到</create></create> <convert converter="bean" match="com.chinaMobile.model.Charge"/>
这里,这样再不行,我也没办法了
放到util.js后面