0

私はウェブサイトから例をコピーしましたが、機能していません。理由を教えてください。Tomcat のコンソール ログに例外やエラーが記録されていません。

以下は私のファイル dwrtest.jspです

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>DIRECT WEB REMOTING (DWR) TEST APPLICATION</title>

        <base href="${pageContext.request.contextPath}">

        <!-- You have to include these two JavaScript files from DWR -->
        <script type='text/javascript' src='dwr/engine.js'></script>
        <script type='text/javascript' src='dwr/util.js'></script>

        <!-- This JavaScript file is generated specifically for your application -->
        <script type='text/javascript' src='dwr/interface/Calculator.js'></script>

        <script type='text/javascript'>

        function dwrAjaxRequest() {
            var num1 = DWRUtil.getValue("num1");
            var num2 = DWRUtil.getValue("num2");
            Calculator.addNumbers(num1,num2,dwrAjaxResponse);
        }

        function dwrAjaxResponse(result) {
            DWRUtil.setValue("resultText",result);
        }
      </script>
</head>
    <body>
        <h2>DWR SAMPLE APPLICATION</h2>
        <b>Number 1 : </b><input type="text" value="5" name="num1"/><br>
        <b>Number 2 : </b><input type="text" value="6" name="num2"/><br>
        <b>Result : </b><input type="text" value="" name="resultText"/><br>
        <input type="button" value="Add" name="go"  onClick="dwrAjaxRequest();"/>
    </body>
</html>

以下は、WEB-INF フォルダーにコピーされた dwr.xml ファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
    <allow>
        <create creator="new" javascript="Calculator">
            <param name="class" value="com.example.dwr.Calculator"/>
            <include method="addNumbers"/>
        </create>
    </allow>
</dwr>

以下は、WEB-INF フォルダーの下の web.xml です。

<?xml version="1.0" encoding="UTF-8"?>

<web-app 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_3_0.xsd"
         version="3.0">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

    <servlet>
        <servlet-name>dwr-invoker</servlet-name>

        <servlet-class>uk.ltd.getahead.dwr.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>



</web-app>

以下は、パッケージ構造 com.example.dwr にある私の Calculator.java クラスです

package com.example.dwr;

public class Calculator {
      public int addNumbers(int a , int b) {
        return (a + b);
      }

}

DWR を初めて使用するので、この例の何が問題なのか教えてください ** 追加ボタンをクリックしても何も起こりません。実際には結果テキスト ボックスに結果が表示されるはずです **

4

1 に答える 1

1

特定のメソッドではなくクラス全体を公開するようにしてください。ここから実際の例をダウンロードできます

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"      "http://getahead.org/dwr//dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="forms">  
<param name="class" value="com.stringpool.demo.Status"/>  
</create> 
</allow>
</dwr>
于 2013-10-14T10:22:43.663 に答える