DWR框架配置

来源:互联网 发布:黑马就业班java视频 编辑:程序博客网 时间:2024/06/07 10:01

今天学习了Dwr框架,于是就在这里写一下具体的配置,也正好作为复习与巩固。


先简单地介绍一下:

DWR是一种AJAX(AsynchronousJavaScript and XML)JAVA实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务商业组件的解决方案。


具体配置流程:

  • 导入jar包:将dwr.jar放入WEB-INF/lib

  • 导入xml文件:web.xml与dwr.xml 放入WEB-INF下


之后就主要是配置的是dwr.xml文件,不过还是先分别来看一下。


web.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
   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"
   version="2.4"
                            
  <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>
                            
</web-app>

这个xml文件一般不需要修改,我们自己所需要配置的servlet就跟在后面写就可以了。


接下来就是dwr.xml了,这个就是我们要做修改的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
//这是一个简单的例子
<dwr>
    <allow>//creator元素主要用于前台JS业务组件对象的生成器如Spring、New、Scripts等。其中javascript后的名字就是前台页面中js所要调用的函数的名字。前台页面javascript引用此组件的名称。名称需要唯一。
//还可以加入scope表示其作用范围,共Session、request、application、page四个选项
// Param  
// 配置业务组件的创建参数。Name属性设置名称,value属性设置业务组件的具体路径(类全名称)。对于java逻辑处理类的名称
//Include
//授权方式保护业务组件方法的可见性。属性method可以访问的方法名称。如果没有配置则默认为所有方法都可以访问。就是公开给前台可以访问的方法
//exclude
//排除方式保护业务组件方法的可见性。属性method设置不可以访问的方法名称。除此之外的都可以访问。如果有需要控制业务组件方法的访问权限时建议采用这种方式。
        
        <create creator="new" javascript="Caculate">
            <param name="class" value="com.app.main.Cac" />
            <include method="add" />        //这里显示了add方法
            <include method="listAll" />       //这里显示了listAll方法
        </create>
        
        
//converter元素用于配置各种数据类型的转换器如String、Array等。做显示数据
// converter  
//配置数据类型的转换器。一般是设置bean转换器,因为基本类型的转换器DWR默认设置。
//match
//设置要使用此转换器的java实体对象。如:
//<convert converter="bean" match="demo.entity.*"/>
//子节点:
//Param对象属性的转换规则,name属性设置规则有include和exclude选项,作用和组件方法控制的一样。Value属性设置实体对象的属性。默认是所有属性都进行转换。
        
        <convert converter="bean" match="com.app.main.Item">
            <param name="include" value="name,price" />
        </convert>
    </allow>
</dwr>



再来结合一下前台的js代码来看一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function cacadd(){
    var arg1v = document.form_test.arg1.value;
    var arg2v = document.form_test.arg2.value;
//这里的Calculate对于的就是dwr.xml中create表情里的javascript,而add就是param中value对于的java类的方法,返回值存在res中
    Caculate.add(arg1v,arg2v,function(res){
        alert(res);
    });
    return false;
}
function listAll(){ 
//同上
    Caculate.listAll(function(items){
             
        var ul = document.createElement("ul");
        for(var i =0 ; i < items.length; i++){
            var item = items[i];
            var li = document.createElement("li");
            li.innerHTML  = "name: "+item.name+" ,price: "+item.price+"";
            ul.appendChild(li);         
        }
        document.body.appendChild(ul);
    });
}

最后,在页面的头部不要忘记添加对于的js文件

这个js文件也是对应create表情里的javascript,应该是dwr帮我们自动生成的js文件

<script type='text/javascript' src='/simple/dwr/interface/Caculate.js'></script>
<script type='text/javascript' src='/simple/dwr/engine.js'></script>
<script type='text/javascript' src='/simple/dwr/util.js'></script>

原创粉丝点击