dwr.xml的配置

2014/05/16 11:21
阅读数 65

1.在项目中的WEB-INF/lib/ 目录下添加dwr.jar文件


2.在web.xml文件中配置servlet  DwrServlet

<!-- 配置DWR -->  
    <servlet>  
        <servlet-name>dwr-invoker</servlet-name>  
        <servlet-class>org.directwebremoting.servlet.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>

2.在WEB-INF/目录下添加 dwr.xml文件

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">  
  <dwr>  
<allow> <!-- 使用默认构造器创建类的实例-->    
<create javascript="userServiceDwr" creator="new" >  
<!-- <create javascript="userServiceDwr" creator="spring" >  
 <!--value配置的是Bean的id-->  
 <param name="beanName" value="userInfoImpl"> </param>-->   
<!--配置要生成实例的类-->  <param name="class" value="com.han.service.impl.UserinfoImpl">  
</param></create><convert match="com.han.service.pojo.Userinfo" converter="bean">  
<param name="exclude" value="dept"></param></convert>   
</allow>  
</dwr>

1.allow部分定义了DWR能够创建和转换的类。
其中createor的属性分为,第一种使用new 来创建对象。它是DWR默认的creator方式。优点:安全、内存消耗低。第二种是采用spring框架的方式创建。
2.javascrpt属性,在浏览器中给你创建的对象命名。这个名字在页面作为JS导入。

<create javascript="userServiceDwr" creator="spring" >  
                   <!--value配置的是Bean的id-->   
                  <param name="beanName" value="userInfoImpl">  
                  </param>

3.scope属性默认为page ,还有application session request .
4.param属性,用来指定creator的其他参数。例如creator指定为new时,必须通过param指定对象的类型。
5.include属性和exclude属性。用来创建一个创造器限定进入类的方法。
6.auth属性指定一个J2EE角色作为访问控制检查。
7.dwr2只在第一次创建对象时,使用setAttribute();
8.convert属性:由于JavaScript不识别bean;所以需要配置convert进行转换;
配置如下:

<convert match="com.han.service.pojo.Userinfo" converter="bean">  
   <param name="exclude" value="dept"></param>  
</convert>

两个没有默认打开的转换器,bean 和 Object 转换器。


9.bean 转换器可以把pojo 转换成JavaScript支持的Json数组(以键值对的形式存储类似Java的Map)。或者反向转换。只有在你自己同意的情况下,DWR才会去调用你的Java代码。
10.Object转换器于bean转换器类似,不同的是它直接作用于对象的成员。而不是通过get/set 方法。
例如:你可以单独为一个类打开一个Bean 转换器。

<convert match="com.han.service.pojo.Userinfo" converter="bean">  
        <param name="exclude" value="dept"></param>  
    </convert>

例如:你为一个包下的所有类或所有的子包下的所有类。

<convert match="com.han.service.pojo.*" converter="bean">  
    </convert>

你还可以让DWR转换所有的类。

<convert match="*" converter="bean">  
</convert>

11.如何访问对象的私有成员?  

通过Object转换器的force参数,可以让DWR来反射对象的私有成员。  

例如:

<pre name="code" class="html">
<convert match="com.han.service.Userinfo" convertor="object">  
   <param name="force" value="true"/>  
</conver></pre><br>  
<br>  
<p></p>  
<pre></pre>  
<br>  
<br>  
<p></p>



展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部