DWR的类却无法在js里用

转自:http://www.cnblogs.com/oasyth/archive/2009/08/26/1554280.html
浏览器提示该对象未定义。

打开dwr.xml看了看,类,方法,include,该露的都露了= =,没问题啊。

看了看页面,头部有如下内容:
<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/XXXClass.js"></script>

后来觉得是不是src这路径写的有问题,改成:
<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/XXXClass.js"></script>

又怀疑是不是路径需要参照实际情况改动,毕竟我工程WEB-INF目录里根本没有dwr这个目录。于是改成:
<script type="text/javascript" src="<%=request.contextPath()%>js/dwr/engine.js"></script>
<script type="text/javascript" src="<%=request.contextPath()%>js/dwr/util.js"></script>
<script type="text/javascript" src="<%=request.contextPath()%>js/dwr/interface/XXXClass.js"></script>

均以失败告终。

又怀疑是不是dwr.xml里不该用new ,于是改成:
<create javascript="XXXClass" creator="spring">
            <include method="methodXX" />
            <param name="class" value="com.yyy.XXXClass" />
</create>

结果还是“变量XXXClass未定义”……我靠。怎么回事……

经测试,引入的engine和util都可用。只有XXXClass对象提示未定义。然后发现还是路径写的有问题。改成这样就正常了:
<script type="text/javascript" src="<%=request.contextPath()%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=request.contextPath()%>/dwr/util.js"></script>
<script type="text/javascript" src="<%=request.contextPath()%>/dwr/interface/XXXClass.js"></script>
直接工程路径接上/dwr/*** 就可以。

原文地址:https://www.cnblogs.com/wangdonghua/p/3320786.html