书签 分享 收藏 举报 版权申诉 / 23

类型dwr示例 Spring.docx

  • 文档编号:7179040
  • 上传时间:2023-01-21
  • 格式:DOCX
  • 页数:23
  • 大小:26.35KB
  

16.      

17.    

18.  

在web.xml中加入一个dwr的servlet:

代码

1.  

2.        dwr-invoker  

3.          

4.            org.directwebremoting.servlet.DwrServlet  

5.          

6.          

7.            debug  

8.            true  

9.          

10.        1  

11.      

12.  

13.      

14.        dwr-invoker  

15.        /dwr/*  

16.      

在运行一下服务器在浏览器里输入http:

//localhost:

8080/DWRStudy/HelloWorld.html,然后点一下按钮下面就会显示服务端的系统时间了,而浏览器页面并没有被刷新。

下面解释一下:

1.新建的Hello类中有一个getHelloWorld方法这个方法就是作为远程调用的服务端方法,这个Hello类也就是远程调用的类。

方法的返回值为服务端当前的时间

2.dwr.xml是DWR用来配置服务端类和浏览器端javascript类之间的映射。

可以下载dtd看一下,在里类配置映射类如:

javascript="jshello"是在浏览器端的javascript的映射的类名,(不要用javascript里的关键字)creator="new"是表示这个类是dwr自己创建的,如果creator="new"那么就必须有下面的,creator还可为spring(与spring集成的时候),script(与apache的一个框架BSF集成的时候用),后来又加入了struts,jsf,ejb3.现在是个HelloWorld让大家体验一下,具体后面会细讲。

最后的scope=”application”是说这个pojo类的范围,和jsp是一样的。

3.创建hello.js和HelloWorld.html都是看自己是怎么发挥了,注意的是在HelloWorld.html中导入js文件的时候注意顺序和路径命名规律,自己发挥的这个hello.js一定放在后面,因为要调用其它js文件中的函数。

由于在HelloWorld.html里写入了所以在html加载的时候会调用hello.js里的load方法(注意这几个js文件里的函数最好不要重名)在load里面做的事情就是注册一下id为jbutton的按钮的点击事件。

当我们点击id为jbutton的按钮的时候就开始用与服务器端的类相对应的javascript类了(jshello),直接调用jshello类的getHelloWorld方法,可以向函数传递参数,不过要在最后加一个回调函数。

而我们的服务端的类没有参数就直接传回调函数了。

在回调函数的形参msg是服务端Hello类中getHelloWorld方法返回值。

在回调函数里面调用了DWR的工具类DWRUtil类的setValue方法设置id为jdiv的值。

另外我们把doucment.getElementById(“jbutton”);换与$(“jbutton”)也可以得到同样的效果,这就有点像prototype了。

4.在web.xml里加入DWRServlet的配置一是为了远程调用,二是自动生成了

文件。

上个HelloWorld例子只是返回了一个字符串,当然我们显示字符串很容易,可是如果返回一个对象怎么办呢?

,DWR为我们将java类和javascript的DOM对象,不过这得需要我们在dwr.xml里配置。

再看一个综合的例子:

新建类User

代码

1.package org.li.dwr;  

2.  

3.import java.io.FileInputStream;  

4.import java.io.FileNotFoundException;  

5.import java.io.IOException;  

6.import java.util.ArrayList;  

7.import java.util.List;  

8.import java.util.Properties;  

9.  

10.public class User  

11.{  

12.    private String welcome;  

13.    private String username;  

14.    private String address;  

15.    private List books;  

16.    private int age;  

17.    public String getAddress()  

18.    {  

19.        return address;  

20.    }  

21.    public void setAddress(String address)  

22.    {  

23.        this.address = address;  

24.    }  

25.    public int getAge()  

26.    {  

27.        return age;  

28.    }  

29.    public void setAge(int age)  

30.    {  

31.        this.age = age;  

32.    }  

33.    public String getUsername()  

34.    {  

35.        return username;  

36.    }  

37.    public void setUsername(String username)  

38.    {  

39.        this.username = username;  

40.    }  

41.    public String getWelcome()  

42.    {  

43.        return welcome;  

44.    }  

45.    public void setWelcome(String welcome)  

46.    {  

47.        this.welcome = welcome;  

48.    }  

49.    public List getBooks()  

50.    {  

51.        return books;  

52.    }  

53.    public void setBooks(List books)  

54.    {  

55.        this.books = books;  

56.    }  

57.    public List getBook()  

58.    {  

59.        this.books = new ArrayList();  

60.        Book javaBook = new Book();  

61.        Book vcBook = new Book();  

62.        javaBook.setAuthor("孙鑫");  

63.        vcBook.setAuthor("孙鑫");  

64.        javaBook.setName("java Web开发详解");  

65.        vcBook.setName("vc++深入详解");  

66.        this.books.add(javaBook);  

67.        this.books.add(vcBook);  

68.        return this.books;  

69.    }  

70.    public User getUser(String welcome)  

71.    {  

72.        this.welcome=welcome;  

73.        try  

74.        {  

75.            FileInputStream fis = new FileInputStream("D:

\\workspace\\DWRStudy\\src\\user.properties");  

76.            Properties pp = new Properties();  

77.            pp.load(fis);  

78.            this.username=pp.getProperty("username");  

79.            this.age=Integer.valueOf(pp.getProperty("age"));  

80.            this.address=pp.getProperty("address");  

81.            fis.close();  

82.        }  

83.        catch (FileNotFoundException e)  

84.        {  

85.            // TODO Auto-generated catch block  

86.            e.printStackTrace();  

87.        }  

88.        catch (IOException e)  

89.        {  

90.            // TODO Auto-generated catch block  

91.            e.printStackTrace();  

92.        }  

93.        return this;  

94.    }  

95.}  

新建Book类:

代码

1.package org.li.dwr;  

2.  

3.public class Book  

4.{  

5.    private String name;  

6.    private String author;  

7.    public String getAuthor()  

8.    {  

9.        return author;  

10.    }  

11.    public void setAuthor(String author)  

12.    {  

13.        this.author = author;  

14.    }  

15.    public String getName()  

16.    {  

17.        return name;  

18.    }  

19.    public void setName(String name)  

20.    {  

21.        this.name = name;  

22.    }  

23.}  

新建DWRLog类

代码

1.package org.li.dwr.log;  

2.  

3.import java.lang.reflect.Method;  

4.  

5.import org.directwebremoting.AjaxFilterChain;  

6.  

7.public class DWRLog implements org.directwebremoting.AjaxFilter  

8.{  

9.  

10.    public Object doFilter(Object obj, Method method, Object[] params, AjaxFilterChain chain) throws Exception  

11.    {  

12.        System.out.println("过滤器Log输出:

..对象:

"+obj.getClass().getName()+"方法:

"+method.getName());  

13.        return chain.doFilter(obj, method,params);  

14.    }  

15.      

16.}  

新建D:

\\workspace\\DWRStudy\\src\\user.properties

username=javafish

age=21

address=北京市海淀区

然后在dwr.xml里加入

代码

1.  

2.              

3.            

-- 过滤允许调用的方法 -->  

4.              

5.              

6.            

-- 配置自己的过滤器 -->  

7.              

8.          

9.        

-- 需要转换的类 -->  

10.          

11.          

新建UserInfo.html

代码

1.

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

2.  

3.    

4.    UserInfo.html  

5.      

6.      

7.      

8.      

9.      

10.  

11.    

12.    

13.    

14.    请输入你的名字:

  

15.    <

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
dwr示例 Spring dwr 示例
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:dwr示例 Spring.docx
链接地址:https://www.bdocx.com/doc/7179040.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开