我的第一個DWR程序

這個程序是經過我一整天的研究才搞明白,怎樣解決“缺少對象”、“XXX未定義”的問題
text.html
<!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>Simple Text Generation Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<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/Service.js'> </script>
<script type="text/javascript" src='text.js'> </script>
<link rel="stylesheet" type="text/css" href="../tabs/tabs.css" />
<link rel="stylesheet" type="text/css" href="../generic.css" />
</head>
<body >
<p>
Name:
<input type="text" id="demoName" value="Joe"/>
<input type="button" id="demoSend" value="Send" onclick="update()"/>
<br/>
Reply from wlp's service: <span id="demoReply" style="background:#eeffdd; padding-left:4px; padding-right:4px;"> </span>
</p>
</body>
</html>

text.js
function update() {
var name = dwr.util.getValue("demoName");
Service.sayHello(name, function(data) {
dwr.util.setValue("demoReply", data);
});
}

WEB-INF下面是
dwr.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

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

<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<!-- This should NEVER be present in live -->
<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>

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

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

<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<!-- This should NEVER be present in live -->
<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>

Service.java
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

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

<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<!-- This should NEVER be present in live -->
<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>


我在跟着dwr中文教程編碼的時候老是出現Service未定義的問題,我重複的進行代碼測試終於發現爲自己的類更改三處,
第一處在test.js
如下:function update() {
var name = dwr.util.getValue("demoName");
[color=red]Service[/color].sayHello(name, function(data) {
dwr.util.setValue("demoReply", data);
});
},第二處在dwr.xml
如下:
<create creator="new" javascript="[color=red]Service[/color]">
<param name="class" value="[color=red]helloworld.Service[/color]"/>
</create>,第三處在text.html中
如下:
<script type='text/javascript' src='./dwr/engine.js'> </script>
<script type='text/javascript' src='./dwr/util.js'> </script>
[color=red]<script type='text/javascript' src='./dwr/interface/Service.js'> </script>[/color]
<script type="text/javascript" src='text.js'> </script>
<link rel="stylesheet" type="text/css" href="../tabs/tabs.css" />
<link rel="stylesheet" type="text/css" href="../generic.css" />
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章