2008-06-12
DWR的第一个例子
这是我的第一个DWR程序:
从DWR中文文档的HelloWord和例子和来自林信良(良葛格)的专栏的Hello AJAX!.地址如下:http://blog.csdn.net/caterpillar_here/archive/2007/02/18/1511605.aspx.
我在例子中使用的包名是test.下
1.有Book.java和Hello.java.代码如下:
package test;
import java.util.Locale;
import java.util.ResourceBundle;
public class Book {
private ResourceBundle resource;
Locale locale = new Locale("UTF-8");
public Book() {
resource = ResourceBundle.getBundle("book", locale);
}
public String getDescription(String key) {
return resource.getString(key);
}
}
package test;
public class Hello {
public String hello(String name) {
return "哈囉!" + name + "!您的第一個DWR!";
}
}
2.book_zh_CN.properties 代码如下:
ajax = Ajax in action \u4E2D\u6587\u7248\u7684\u4ECB\u7ECD\u2026 java = Java \u5B66\u4E60\u7B14\u8BB0\u7684\u4ECB\u7ECD spring = Spring \u6280\u672F\u624B\u518C\u7684\u4ECB\u7ECD\u2026BlaBla...
在就是WEB-INF下
1.是lib下放dwr.jar.我这使用的dwr2.0.
2.web.xml.代码如下:
<?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3.dwr.xml.代码如下:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr//dwr20.dtd"> <dwr> <allow> <create creator="new" javascript="JDate"> <param name="class" value="java.util.Date" /> </create> <create creator="new" javascript="Hello"> <param name="class" value="test.Hello"></param> </create> <create creator="new" javascript="Book" scope="application"> <param name="class" value="test.Book" /> </create> </allow> </dwr>
在就是WebContent下:
1.book.js.代码如下:
function getBookData(ele) {
//Book.java中的getDescription方法
Book.getDescription(ele.id, setBookData);}
//回调方法
function setBookData(d) {
DWRUtil.setValue('info', d);}
function clearData() {
DWRUtil.setValue('info', '');}
2.hello.js.代码如下:
function hello() {
var user = $("user").value;
//$(id)等于document.getElementById("id")
Hello.hello(user, callback);
}
function callback(msg) {
DWRUtil.setValue("result", msg);
}
3.index.jsp.代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/engine.js'></script> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/interface/JDate.js'></script> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/interface/user.js'></script> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/interface/Hello.js'></script> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/util.js'></script> <script type='text/javascript' src='<%=request.getContextPath() %>/dwr/interface/Book.js'></script> <script type="text/javascript" src="hello.js"></script> <script type="text/javascript" src="book.js"></script> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>第一个DWR程序</title> </head> <body> <table width="606" height="98" border="1" bordercolor="#bde3ff"> <tr> <td width="223"><input id="user" type="text" /> <input type="button" value="你好" onClick="hello();" /></td> </tr> <tr> <td colspan="2"> <div id="result"></div> </td> </tr> </table> <div id="ajax" onmouseover="getBookData(this);" onmouseout="clearData();"><a href="http://www.gotop.com.tw/waweb2004/home/home.aspx?pg=HM010X&bn=AXP011800"><small><img style="border: 0px solid; width: 80px; height: 110px; float: left;" alt="Ajax in action 中文版" title="Ajax in action 中文版" src="images/ajax_in_action_c.jpg" hspace="10" vspace="2"></small></a></div> <div id="spring" onmouseover="getBookData(this);" onmouseout="clearData();"><a href="http://www.gotop.com.tw/waweb2004/home/home.aspx?pg=HM010X&bn=ACL021000"><small><img style="border: 0px solid; width: 80px; height: 110px; float: left;" alt="Spring 技术手册" title="Spring 技术手册" src="images/SpringTech_S.jpg" hspace="10" vspace="2"></small></a></div> <div id="java" onmouseover="getBookData(this);" onmouseout="clearData();"><a href="http://www.gotop.com.tw/waweb2004/home/home.aspx?pg=HM010X&bn=ACL020931"><small><img style="border: 0px solid; width: 80px; height: 110px; float: left;" alt="Java 学习笔记" title="Java 学习笔记" src="images/JavaGossip_Cover_Small.jpg" hspace="10" vspace="2"></small></a></div> <br /><br /><br /><br /><br /><br /><br /><br /> <div id="info"></div> </body> </html>
在一次说明有部分代码来自林信良(良葛格)的专栏 . 上面还有更多的例子.
评论
kimmking
2008-06-23
dwr/interface/XX.js
见web.xml中
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
即 所有dwr/interface/XX.js的请求都由uk.ltd.getahead.dwr.DWRServlet输出。而此servlet就是楼上说的那个将java class转化为js调用stub的入口。
见web.xml中
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
即 所有dwr/interface/XX.js的请求都由uk.ltd.getahead.dwr.DWRServlet输出。而此servlet就是楼上说的那个将java class转化为js调用stub的入口。
lgf444
2008-06-22
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/engine.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/JDate.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/user.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/Hello.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/util.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/Book.js'></script>
中的dwr/interface/***.js 这个是把JAVA类转成可调用的JS(我是这样看的).engine.js和util.js是他自己带的二个包.一般都加.有方法给你可以用JS操作网页(如.table中加tr,td.给input加value值).dwr/interface/Hello.js 这个Hello.JS是指把dwr.xml中<create creator="new" javascript="Hello">.
wjh8161500
2008-06-18
是dwr包中的js
snowme103
2008-06-17
kimmking 写道
dwr的官方例子 本身就不错
我就是不知道
dwr/interface/JDate.js
dwr/interface/user.js
dwr/interface/Hello.js
dwr/util.js
dwr/interface/Book.js
是从哪里调用的 项目中不存在这些js 请知道的兄弟指点一下
kimmking
2008-06-17
dwr的官方例子 本身就不错
snowme103
2008-06-17
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/engine.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/JDate.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/user.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/Hello.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/util.js'></script>
<script type='text/javascript'
src='<%=request.getContextPath() %>/dwr/interface/Book.js'></script>
不知这些js是从哪里来的
开始以为这些JS 可能是这个项目中没用到的吧 但是去掉了 就运行不了了
不知道页面是从哪里调用到这些js的
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则







评论排行榜