我按照书上的例子用DWR写了一个helloWord 测试程序
当打开页面时 点击Button按钮 就应该alert出来一个helloword
但是 显示的确是 “/DwrDemo/dwr${plainCallHandlerUrl}service.sayHello.dwr”这样一串字符
其中 DwrDemo 是我的工程名, service是我在dwr配置文件里面指定的JS函数名称,sayHello是我在后台的函数名称
但是他显示这窜字符是什么意思呢

解决方案 »

  1.   

    web.xml的内容
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
    <filter-class>org.directwebremoting.servlet.DwrListener</filter-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>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    dwr.xml 的内容
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
     "http://getahead.org/dwr/dwr30.dtd">
     <dwr>
     <allow>
      <create creator="new" javascript="service">
      <param name="class" value="helloword.Service"/>
      </create>
     </allow>
     </dwr>
      

  2.   

    Service 类的内容package helloword;
    public class Service {
    public String sayHello(String name)
    {
    return "Hello:"+name;
    }
    }
      

  3.   

    页面内容<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type='text/javascript' src='dwr/interface/service.js'></script><script type='text/javascript' src='JS/engine.js'></script>
    <script type='text/javascript' src='JS/util.js'></script>
    <script type="text/javascript">
      function firstDwr(){
       service.sayHello("地球人",callback);
      }
      function callback(data){
       alert(data);
      }
     </script>
      </head>
      
      <body>
        This is my JSP page. <br>
    <input type="button" name="button" value="鼠标移过来." onclick="firstDwr()"/>
      </body>
    </html>
      

  4.   

    <script type='text/javascript' src='dwr/interface/service.js'></script>
    <script type='text/javascript' src='JS/engine.js'></script>
    <script type='text/javascript' src='JS/util.js'></script> 这有问题吧<script type='text/javascript' src='<%=path%>/dwr/interface/service.js'></script>
    <script type='text/javascript' src='<%=path%>/dwr/engine.js'></script>
    <script type='text/javascript' src='<%=path%>/dwr/util.js'></script> 
      

  5.   

    但是我是新建的一个名为JS的文件夹 里面放的是engine.js,util.js这2个.JS文件
      

  6.   

    <script type='text/javascript' src='<%=path%>/dwr/engine.js'></script>
    <script type='text/javascript' src='<%=path%>/dwr/util.js'></script>
    这是DWR自带的JS不是要你去建的
      

  7.   

    你先这样访问 /DwrDemo/dwr 然后就出来你配置的dwr你点就去,那3个js的路劲给你生成好了,你再拷贝到jsp里面就不会错了 
      

  8.   

    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
    <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
    <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/XXXX.js'></script>