`
zengbo0710
  • 浏览: 414601 次
社区版块
存档分类
最新评论
阅读更多
需求很简单,就是用js向后端请求,然后把请求的结果弄进一个select里面。一开始是用xmlrequest去请求后端一个groovy的url,得到一个xml,然后把xml的内容填进select里面去。做完老瞅着不顺眼,正好在看ajax的资料,拿dwr改造一下。

js是我一直很头疼的事了,尤其是对dom的操作上面,dwr感觉就是在直接调java接口,操作java对象,省事省心啊。

用dwr,先得在web.xml中配一下。

 1    <servlet>
 2        <servlet-name>dwr-invoker</servlet-name>
 3        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
 4        <init-param>
 5            <param-name>debug</param-name>
 6            <param-value>true</param-value>
 7        </init-param>
 8    </servlet>
 9    <servlet-mapping>
10        <servlet-name>dwr-invoker</servlet-name>
11        <url-pattern>/dwr/*</url-pattern>
12    </servlet-mapping>
13

然后就是配dwr.xml文件了。
dwr和spring贴得比较紧,不用折腾,直接让dwr去调spring中定义的bean了。
 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd" >
 3<dwr>
 4    <allow>
 5        <create javascript="ServerManager" creator="spring">
 6            <param name="beanName">ServerManager</param>
 7        </create>
 8    </allow>
 9</dwr>
10
我的project中,已经在web.xml中配了spring的listener,直接写beanName就行。

在ServerManager接口中定义了如下方法
  List<Server> loadAll(User manager, ServerStatus status, String order);
因此,在dwr中定义了三个convert(一开始没配,结果怎么调都不成功)。

1        <convert converter="bean" match="com.yninfo.sa.domain.Server" />
2        <convert converter="bean" match="com.yninfo.sa.domain.ServerStatus" />
3        <convert converter="bean" match="com.yninfo.sa.domain.User" />


loadAll方法中的manager参数,是用户登录成功后,session.setAttribute("user",user)存放的。在html里面,用js是无法读到的,因此,自己定义了一个java bean。
1public class Remote {
2  public User getUser(HttpSession session) {
3    return (User) session.getAttribute("user");
4  }

5}

6

同样的,在dwr中配了一下
1        <create javascript="Remote" creator="new">
2            <param name="class" value="com.yninfo.sa.web.ajax.Remote" />
3        </create>


所有配置完成后,js代码如下:
 1<script type='text/javascript' src='dwr/interface/Remote.js'></script>
 2<script type='text/javascript' src='dwr/interface/ServerManager.js'></script>
 3<script type='text/javascript' src='dwr/engine.js'></script>
 4<script type='text/javascript' src='dwr/util.js'></script>
 5<script>
 6    function init(){
 7        Remote.getUser(
 8            function(user){
 9                ServerManager.loadAll(user,null,null,load);
10            }
);
11    }

12    function load(data){
13        for (var i=0; i<data.length; i++{
14          document.DailyRecordAdd.elements["model.serverId"].options[i]=
15            new Option(data[i].name,data[i].id);
16        }

17    }

18    window.onload = function (){
19        init();
20    }

21</script>


最终的配置文件:
 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd" >
 3<dwr>
 4    <allow>
 5        <create javascript="ServerManager" creator="spring">
 6            <param name="beanName">ServerManager</param>
 7            <include method="add" />
 8            <include method="findByPrimaryKey" />
 9            <include method="loadAll" />
10        </create>
11        <create javascript="Remote" creator="new">
12            <param name="class" value="com.yninfo.sa.web.ajax.Remote" />
13        </create>
14        <convert converter="bean" match="com.yninfo.sa.domain.User" />
15        <convert converter="bean" match="com.yninfo.sa.domain.Server" />
16        <convert converter="bean" match="com.yninfo.sa.domain.ServerStatus" />
17    </allow>
18</dwr>
19
 

分享到:
评论

相关推荐

    DWR入门教程

    本教程将帮助初次接触DWR的开发者快速上手。 ### 1. 安装DWR的Jar包 首先,你需要下载DWR的核心库文件`dwr.jar`。将其放置于你的Web应用的`WEB-INF/lib`目录下,确保与其它依赖的jar文件放在一起。这样,DWR的核心...

    Dwr 入门操作手册

    对于刚接触DWR的新手来说,本手册将详细介绍如何配置与使用DWR。 #### 二、DWR配置与部署 **1. 添加DWR库** - 将DWR的`.jar`文件放置于Web应用的`WEB-INF/lib`目录中。 - **示例**:如果项目名为`TestDWR1`,则应将...

    dwr基础学习书籍新手必备

    **DWR入门**:初学者在接触DWR之前,应具备一定的JSP、JavaScript和应用服务器(如Tomcat)的基础知识。本书《DWR中文文档v0.9DWR2.0》由方佳玮编著,旨在为新手提供从入门到实践的完整指南。书中不仅包含了DWR的...

    dwr 文档和树形图

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在浏览器端与服务器端...无论你是初次接触DWR还是希望深入研究,这份资源都会是你的宝贵资料。在学习过程中,记得理论联系实践,多做实验,以巩固你的理解。

    dwr的jar包 帮助文档 以及配置文件

    这是一份宝贵的资源,特别是对于那些刚刚接触DWR的人来说,能快速上手并开始实际开发。 5. **DWR的工作原理**:DWR通过创建一个动态JavaScript代理,使得浏览器可以直接调用服务器上的Java方法。这种机制使得开发者...

    DWR开源框架开发小练习

    在这个小练习中,你可能还会接触到jQuery,这是一个广泛使用的JavaScript库,它可以简化DOM操作、事件处理和AJAX交互。DWR和jQuery的结合,可以让开发者更方便地构建功能丰富的、响应式的Web应用。 要运行这个小...

    DWR初次接触

    **DWR(Direct Web Remoting)初次接触** DWR,全称为Direct Web Remoting,是一种JavaScript库,允许在Web浏览器和服务器之间进行实时、安全的双向通信。它简化了Ajax应用的开发,使得开发者可以像操作本地对象...

    dwr工程实例,基本于myeclipse.

    首先,"dwr工程实例"表明我们将接触到一个实际的项目,这个项目已经包含了使用DWR技术的代码和配置。MyEclipse是基于Eclipse的Java EE集成开发环境,非常适合于开发和调试Web应用程序,包括DWR项目。 在导入这个...

    dwr可使用工程下载

    DWR (Direct Web Remoting) 是一个开源JavaScript库,它允许Web应用程序在客户端与服务器端之间进行实时通信,实现无刷新的数据交换。...同时,通过接触MySQL和SQL查询,你也将加深对数据库操作的理解。

    dwr入门 -- 03 -- 结合Spring

    但通过以上描述,你可以预见到在学习这个主题时,你将接触到的是一系列关于DWR和Spring整合的实践操作和理论知识。对于想要构建富客户端Web应用的开发者来说,这是一项非常实用的技术。如果你对这个领域感兴趣,建议...

    疯狂Ajax讲义16-17章源代码

    例如,你可能接触到了`$`函数用于选取元素,`$$`用于选取多个元素,`Element.Methods`扩展DOM元素的方法,以及`Ajax.Request`和`Ajax.Updater`进行异步请求的使用。 第17章则可能涉及jQuery的介绍和DWR(Direct Web...

    accp5.0 Y2 Epai项目

    在"Epai"项目中,学员们不仅会接触到Spring框架的配置和使用,还需要掌握如何在DWR的帮助下实现动态网页交互。这可能包括创建Java后端服务、编写DWR配置文件、以及在前端JavaScript中调用这些服务。通过这样的实践,...

    ssh_ext_图书管理系统

    《SSH EXT 图书管理系统:深度解析与二次开发指南》 SSH EXT 图书管理系统是一个基于Java技术栈构建...对于开发者而言,无论是初次接触还是进行二次开发,都能从中受益匪浅,享受到Java技术栈带来的强大功能和灵活性。

    OA 教学项目

    在这个项目中,我们可能会接触到各种与IT相关的技术,如编程语言、数据库管理、前端界面设计以及服务器端处理等。通过对这个项目的深入学习,学生能够提升自己的综合技术能力,并在实际工作中应用。 标签"源码"表明...

    java软件开发——顶岗实习周记25篇.pdf

    首先,实习生接触到了一系列Java相关的框架和技术,包括Hibernate、Spring、iBATIS、jQuery、EXTJS、DWR和EasyUI等。这些技术分别在数据库操作、依赖注入、前端交互、UI设计和远程调用等方面发挥重要作用。Hibernate...

    java软件开发——顶岗实习周记25篇.doc

    作者通过实践和学习,掌握了 Java 相关技术,如 Hibernate、Spring、iBATIS、jQuery、EXTJS、DWR、EasyUI 等,并了解了公司的运作和工作流程。 实习第一周――学习和了解公司运作 在实习的第一周,作者主要学习和...

    java软件开发-顶岗实习周记25篇.docx

    在这周中,作者向开发人员问了关于项目小组需要使用的技术,如 Hibernate、Spring、iBATIS、jQuery、EXTJS、DWR、EasyUI 等等,并重点学习了 jQuery。之后,作者熟悉了招聘流程,并帮助项目经理做了个项目上线休整的...

    实习日志-软件项目开发,实习日志

    在实习的后期,实习生接触了异步技术,这是一种提高用户体验的关键技术。他们将异步应用到了新建项目的页面,实现了局部刷新,以及根据用户id显示头像的功能。在项目分组和技术分配的过程中,实习生们通过抽签的方式...

Global site tag (gtag.js) - Google Analytics