这是我的第一个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的入口。
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的
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

lgf444
搜索本博客
最近加入圈子
存档
最新评论