DWR(js访问类方法)

阅读更多
Ajax开源框架:
   DWR:服务器框架,它的好处是,响应如果是后台的java类。dwr引擎自动把类改装成servlet并通过web服务的方式。将函数库全部公开。
JS框架 
jQuery:客户端框架,它仅仅是将客户端的js和ajax的关键对象XMLHttpRequest的函数封装了而已
       比如$.ajax()
       类似jquery的前台框架:prototype、extJS、DOJO

   DWR的开发步骤:
     1.导入包(2个dwr包)
     2.定义xml的dtd,并导入dtd格式文件(dtd在这的作用:手写dwr.xml时可提示,避免手写时写错)
     3.编写前台和后台的访问逻辑
     4.定义dwr.xml引入dtd,包含需要公开的后台函数库(如:
        然后交给dwr引擎来处理整合函数库和前台的调用关系。
     5.通过/dwr为前缀的访问。产生dwr需要的三个js文件。util.js  enginee.js  XXX类.js
       (对于web,在地址栏输入:localhost:端口号/项目访问名/dwr,进入可显示相应的方法名以及js名,把js地址复制到jsp或html页面即可使用)
     6.通过回调获取访问的结果

  小结:通过这种方法,html页面也可实现数据交互,不必在意后台的语言(C,C#等都可以)。
  注意:dwr.xml需要与其dtd同级。web.xml中需要对dwr进行过滤配置
  说明:
localhost:端口号/项目访问名/dwr进入可显示相应的方法名以及js名,
1.方法名红色表示不能访问
   原因1:继承父类的函数,不能被访问。
   原因2:没有在dwr.xml中被include的函数,不能被访问


web.xml中需要加入:

dwr-invoker
uk.ltd.getahead.dwr.DWRServlet

debug
true




dwr-invoker
/dwr/*


dwr.xml:




  


                      
                      
   

  
 
  



注:每个类都需要配一个create


每个需要被js访问的类,都需要一个create,一个param(确定类的路径),
include用于包含可调用的方法
标签指定要防止被访问的方法。 注意:include和exclude不能同时存在。
当include与exclude都不写时,表示所有非继承类都可以被访问。


js中调用服务器的方式:
     EmployeesDao.findCondition(employee_id,function(v){
          result.innerHTML=v;
       });
EmployeesDao为dwr.xml中类的逻辑映射名,findCondition为对应类的方法,employee_id为js传给改方法的参数,function(v){... }为回调函数,v为服务器端该方法返回值


服务器端:
  普通方法,




转换器:(会把返回的User对象或全是User对象的集合转换成json格式后交给页面  服务端:  对象-->json) (搞定)
   

也可以把页面的json对象传给方法参数为实体对象的方法,由dwr将json转为对象,然后传给方法,即  json——>对象,(这个配置搞定)

     
 
  

你可能感兴趣的:(dwr)