zoukankan      html  css  js  c++  java
  • DWR学习笔记转载

     转自:http://www.cnblogs.com/wyqtomorrow/archive/2007/06/11/778985.html

     DWR是一个开源的java包,可以使浏览器中的代码使用web服务器中java类的方法,就像这个方法就是在浏览器中一样。

          DWR包括两个部分:一个运行在服务器端的Java Servlet,负责处理浏览器的请求并发送反馈给浏览器;另一个是运行在浏览器端的Java Script,负责发生请求并动态修改web页面。
    步骤:
    (1)、下载dwr.jar,放在web-inf/lib目录下
    (2)、修改web.xml,增加:
    <servlet>  
    <servlet-name>dwr-invokerservlet-name>  
    <display-name>DWR Servletdisplay-name>  
    <servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class> //如果是DWR 2.x,改成org.directwebremoting.servlet.DwrServlet   
    <init-param>  
      <param-name>debugparam-name>   
       <param-value>trueparam-value>  
    <init-param>  
    <servlet>     
    <servlet-mapping>  
    <servlet-name>dwr-invokerservlet-name>  
    <url-pattern>/dwr/*url-pattern>  
    <servlet-mapping>
      
    (3)、创建dwr.xml放在与web.xml一个目录下面
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

    <dwr>   
    <allow>
    <create creator="new" javascript="JDate"> //JS使用的类名 
    <param name="class" value="java.util.Date"/>  //实际java的类
    <create>  
    <create creator="new" javascript="Demo" scope="page/request/session/application"> //可以设置对象保存的位置
    <param name="class" value="your.java.Bean"/>  
    <create>  
    <allow>  
    <dwr>
      
    (4)、
    一般jsp页面中需要加入: 
    <script type='text/javascript' src='dwr/interface/Hello.js'></script>
    <script type='text/javascript' src='dwr/engine.js'></script>
    <script type='text/javascript' src='dwr/util.js'></script>
    <script type='text/javascript' src='hello.js'></script>

    其中最后一个js文件是自定义的文件
    (5)、写服务端的JAVA类
    (6)、写客户端的js
    function hello() { var user = $('user').value;
        Hello.hello(user, callback);
    }
     
    function callback(msg) {
       DWRUtil.setValue('result', msg);
    }

    1.web.xml中dwr定义的一点小技巧
    加下面的参数,可以让dwr以debug模式产生测试页面
    <init-param>   
    <param-name>debugparam-name>  
    <param-value>trueparam-value>  
    <init-param>
      
    2.dwr.xml介绍
    格式:
    <dwr>     
    <init>   
    <creator id="..." class="..."/>  
    <converter id="..." class="..."/>  
    < init>   
    <allow>  
    <create creator="..." javascript="..."/>  
    <convert converter="..." match="..."/>  
    < allow>  
    <signatures>   
      ...    
    <signatures>    
    <dwr>  

    (1)、create元素介绍,一般结构如下,对每个要在远程访问方法的java类都要定义一个creator

    <create creator="..." javascript="..." scope="...">  
    <param name="..." value="..."/>  
    <auth method="..." role="..."/>  
    <exclude method="..."/>   
    <include method="..."/>
      
    <create>   对各个元素进行描述
    (2)、 creator属性
    new:指用java的new操作符创建对象
    none:并不产生对象
    scripted:用脚本语言创建对象,如BeanShell 或 Groovy via BSF
    spring:通过spring framework创建对象
    struts:使用struts的FormBean
    pageflow:使用Beehive or Weblogic的PageFlow
    (3)、javascript属性
             在浏览器端代理远程java对象的javascript对象的名字
    (4)、scope属性
             远程java对象scope可以设置page、request、session、application。
    (5)、param子元素:定义访问的具体java类。

    (6)、include和exclude子元素:限制访问的方法

    DWR util.js工具包的使用
    目录列表:

    1、$()
    2、DWRUtil.getText(id)
    3、DWRUtil.getValue(id)
    4、DWRUtil.setValue(id,value)
    5、DWRUtil.getValues()
    6、DWRUtil.setValues()
    7、DWRUtil.addOptions and DWRUtil.removeAlloptions
    8、DWRUtil.addRows and DWRUtil.removeAllRows
    9、DWRUtil.onReturn
    10、DWRUtil.toDescriptiveString
    11、DWRUtil.useLoadingMessage

    (1)、DWRUtil.selectRange("selectRangeBasic", 5, 15) 选中selectRangeBasic文本框里面从第五个字符到第15个字符之间的字符.
    (2)、var arrayFive = [ 'One', 'Two', 'Three', 'Four', 'Five' ];
    DWRUtil.addOptions('addOptionsBasic', arrayFive); 将数组添加到下拉菜单里面去;
    (3)、DWRUtil.getValue('addOptionsBasic') 得到 addOptionsBasic 对象的值;
    (4)、DWRUtil.getText('addOptionsBasic') 得到下拉框 addOptionsBasic 显示的文本;
    (5)、var arrayObject = [
    { name:'One', value:'1' },
    { name:'Two', value:'2' },
    { name:'Three', value:'3' },
    { name:'Four', value:'4' },
    { name:'Five', value:'5' }
    ];DWRUtil.addOptions('addOptionsObject1', arrayObject, "name"); 将数组添加到下拉菜单里面去;后面的参数是确定那个是给用户显示的文本,同时也是值;如果是name表示名称和值都用name显示。
    DWRUtil.addOptions('addOptionsObject1', arrayObject, "name","value"); 同上,不过后面参数是: 3=值;4=文本;
    (6)、var map = { one:1, two:2, three:3, four:4, five:5 };
    DWRUtil.addOptions('addOptionsMap1', map); 同上, one 是值;1 是文本;
    DWRUtil.addOptions('addOptionsMap1', map,true); 同上, 1 是值;one 是文本;
    (7)、DWRUtil.cloneNode('cloneNode1', { idPrefix:'pre', idSuffix:'suf' });克隆一个节点,参数一为要克隆的节点的id,第二个参数是在克隆的节点id前面加pre,后面加suf.(注意:如果该节点有子节点的话,子节点的名字也一样加
    (8)、DWRUtil.onReturn(event, submitFunction);一般在form表单里面,防止在文本框上按回车就提交表单.
    例如:
    <input type="text"
    onkeypress="DWRUtil.onReturn(event, submitFunction)"/>
    <input type="button" onclick="submitFunction()"/>
    submitFunction表示要调用的js函数

  • 相关阅读:
    热血投篮~手机游戏图像外包,美术完成度超过80%。现在需要对部分元素进行修改,价格
    BetaTank 1.0.1 手机 游戏 Nokia Symbian 塞班
    弹弓弹球 (banus) Android 游戏
    欢迎反馈意见
    Which Macros should I use? Themida的SDK中应该怎么使用各种宏?
    通过Daffodil for VS使VS2010的IDE可以用VC6 VC7.1 VC9等编译器进行项目编译
    STL中各种容器效率
    AcceptEx获取远程ip和端口
    PC寄存器
    VC6 sp6补丁地址
  • 原文地址:https://www.cnblogs.com/mabaishui/p/1777424.html
Copyright © 2011-2022 走看看