已经暴露给DWR的类却无法在js里用

浏览器提示该对象未定义。

打开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/*** 就可以。

学会了一种检验现有DWR状况的办法:
浏览器地址栏输入 http://[ip地址]:[端口号]/[工程名]/dwr
就能看到DWR的测试页面了。
posted @ 2009-08-26 13:25  Oasyth  阅读(1531)  评论(0编辑  收藏  举报