介绍之前先简单的说说DWR,
Direct web remoting, 从字面意思上来说, 就是重定向Web请求的远程调用, DWR是一个Ajax框架, 提供web页面与服务器端资源的交互,且在不Refresh page和 Reload page 的情况下工作, 它封装了JavaScript调用服务器端程序的步骤, 灵活的配置使我们开发人员更容易得心应手.
DWR 规范:
1, 处理请求的Java类.
Note: 这个Class和我们普通的业务逻辑处理类一样,没有什么特别的地方.
2, 配置必须的dwr.xml 文件(Java 开发中说得很多的,配置,配置,再配置.^_^)
DWR 的配置文件的节点介绍,
dwr.xml 以一对符合XML文件规范的标签 <dwr></dwr>开始和结束, 中间包含<allow></allow>和<signatures></signatures>标签,我们的主要配置工作在<allow></allow>中执行, 里面是Dwr的核心配置信息,也就是说, allow标签中没有任何东西时 , 我们什么事也做不了.这是因为DWR框架的工作特性决定的,DWR内置API中存在对js对象和java对象的创建器和转换器, 工作需要时对两种对象进行转换, 这就是DWR的核心工作职责; allow 里面包含 convert 和 create 标签, 这两个子节点是转换器和构建器的标识,如下:
DWR提供的创建器有以下几个:
new ,提供使用new关键字创建java实例.(使用最广泛的)
none, 不创建任何实例
scripted, 使用脚本语言创建实例.
spring, 直接使用spring容器中的bean.用于dwr和spring的整合.
jsf: 直接使用Struts和FormBean创建实例. 用于dwr和struts整合.
pageflow. 直接访问weblogic或beehive的pageflow中的Bean.
ejb3, 通过该创建器,dwr可以直接使用ejb3.0中的sessionBean..
A, 创建器中的属性:
javascript:创建器构建成功后暴露給Client的js对象..
scope:指定Java实例的生命周期. 可以选择 application. session. request. page.
param:指定创建器创建java实例的参数.
include:指定需要暴露的方法.
enclude:与include方法功能相反. 指定不被暴露給Client的方法.
B, 转换器
DWR提供了基础数据类型的转换器. 所以我们在配置相关转换器时不需要对基础数据类型进行转换. boolean,byte,short,int,long,float,double,char,和基础类型的原始类型. e.g : java.lang.Boolean..等等.
对象转换器 converter属性.
bean: 缺省值为false. 默认是关闭的.使用时必须在dwr.xml文件中显式的打开该转换器. 才可以在java方法中使用对应的javaBean实例作为参数或返回值.
Object: 与bean转换器的作用完全相同,都是用于完成Java对性和JSON格式的javascript对象之间的转换, 但Object的功能更强大.Object通过Java的反射机制来访问java对象的属性,使用时, 无需提供Java对象相关属性的getter和setter方法也可访问该对象属性.而Bean转换器则需要Java对象提供对应属性的getter和setter方法才能访问具体属性.
数组转换器: 默认是打开的. 只要符合对象集合的Java集合和JS集合都可以互相转换.
集合转换器: Collection, map. 默认也是打开的.无需添加配置到dwr.xml文件中.两种转换器可以互相包含对方. 也就是说, collection集合里面的元素可以是map集合, 而map集合里面的元素也可以是collection集合..支持递归转换集合里面的内容.
介绍到这里, 还没有給大家说convert 的作用, convert的功能就是为creator服务. 提供参数的转换.可以这样说. create提供了Java对象到JS对象的转换, 而 convert则提供了Java对象和javascript之间的转换.
小卡暂时介绍到这里. 需要的朋友. 请关注第二部分的用法介绍..