• dwr配置文件dwr.xml详解


    本人对dwr 中文文档关于dwr.xml做的一个整理,纯粹体力活,有用得着的朋友别忘顶一下,留个联系方式一起交流学习!
    dwr.xml是DWR的配置文件。默认情况下,应该把它放到WEB-INF目录(web.xml的目录)下
    dwr.xml文件的结构如下:
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
    <dwr>
    <!-- init is only needed if you are extending DWR -->
    <init>
            <creator />
            <converter />
    </init>
    <!-- without allow, DWR isn't allowed to do anything -->
    <allow>
              <create creator="..." javascript="..."/>
              <convert converter="..." match="..."/>
    </allow>
    <!-- you may need to tell DWR about method signatures -->
    <signatures> ... </signatures>
    </dwr>
    这里是一些必须理解的术语 - 参数会被converted,远程Bean会被created。所以如果你有一个叫A的bean,它有一个方法叫A.blah(B) 那么你需要一个A的creator和一个B的converter。
    allow段落里面定义的试DWR可以创建和转换的类。
    dwr.xml文件中的create元素的结构如下:
    <allow> <create creator="..." javascript="..." scope="..."> <param value="..."/> <auth method="..." role="..."/> <exclude method="..."/> <include method="..."/> </create> ...</allow>
    这里的多数元素都是可选的 - 你真正必须知道的是指定一个creator和一个javascript名字。
    creator属性 是必须的 - 它用来指定使用那种创造器。
    默认情况下DWR1.1有8种创造器。它们是:
    new: 用Java的new关键字创造对象。
    pageflow: 访问Beehive或Weblogic的PageFlow。 (v1.1+) 如果你需要写自己的创造器,你必须在init部分注册它。
    javascript属性 用于指定浏览器中这个被创造出来的对象的名字。你不能使用Javascript的关键字。
    scope属性 非常类似servlet规范中的scope。 它允许你指定这个bean在什么生命范围。选项有"application", "session", "request" 和"page"。这些值对于Servlet和JSP开发者来说应该相当熟悉了。
    scope属性是可选的。默认是"page"。如果要使用"session"需要cookies。当前的DWR不支持ULR重写。
    param元素 被用来指定创造器的其他参数,每种构造器各有不同。例如,"new"创造器需要知道要创建的对象类型是什么。每一个创造器的参数在各自的文档中能找到。请查看上面的链接。
    include和exclude元素 允许创造器来限制类中方法的访问。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是"拒绝";如果是exclude列表则暗示默认的访问策略是"允许"。
    例如要拒绝防范除了setWibble()以外的所有方法,你应该把如下内容添加到dwr.xml中。
    <create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <include method="setWibble"/></create>
    对于加入到create元素中的类的所有方法都是默认可见的。
    auth元素 允许你指定一个J2EE的角色作为将来的访问控制检查:
    <create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <auth method="setWibble" role="admin"/></create>
    当一个类是用script创造出来的,并且scope是session或application,如果你的脚本改变,session中的类和script中的类就不一致了。这样会出现错误。虽然web容器不用重启,但是用户需要先登出(或以某种方式清空session),然后再登录。
    当clazz参数不为空,并且用来创造新实例,DWR简单的调用 class.newInstance() 方法。这种方法是没问题的,除非脚本正在用某个参数创建一个类,或者调用某个函数来配置这个类。 不幸的是,每次请求都要重新运行script并造成上面的问题。
      
    确认你的Spring的Bean在DWR外面运行良好。 配置DWR和Spring一起工作。 (看下面) 查看演示页面: http://localhost:8080/[ YOUR-WEBAPP ]/dwr ,检查spring的Bean是否出现。 DWR对于Spring没有运行期依赖,所以如果你不使用Spring那么Spring的支持不会产生任何影响到。
    。如果你知道还有更好的文档,请告知我。
    Rob Sanheim 指出还有一个能的文档。
    ,教你配置DWR使用beans.xml代替WEB-INF/web.xml。
    我也对于如何在beans.xml中指定dwr.xml很感兴趣,尽管这看上去有些Spring传染病的感觉。有人知道如何实现吗?请加入邮件列表并告诉大家。
      
    'Scripted'创造器
    ] 和 Converter [] , 那么你就需要在这里定义他们。但是建议你现检查一下DWR是不是已经支持了。
    在init部分里有了定义只是告诉DWR这些扩展类的存在,给出了如何使用的信息。这时他们还没有被使用。这中方式很像Java中的import语句。多数类需要在使用前先import一下,但是只有import语句并不表明这个类已经被使用了。每一个creator和converter都用id属性,以便后面使用。
    web.xml文档)。每个文件中的定义会被加在一起。DWR用这个功能来加载基础配置文件。我们可以看看标准被配置文件来了解dwr.xml的内容。

  • 相关阅读:
    TWaver网元动态转动效果
    替换TWaver中Tree展开合并图标
    MOSS 2010:Visual Studio 2010开发体验(10)——列表开发之内容类型
    MOSS 2010:Visual Studio 2010开发体验(8)——Silverlight应用
    MOSS 2010:Visual Studio 2010开发体验(13)——列表开发之列表实例
    MOSS 2010:Visual Studio 2010开发体验(5)——Mapped Folder
    MOSS 2010:Visual Studio 2010开发体验(6)——开发WebPart
    MOSS 2010:Visual Studio 2010开发体验(7)——AJAX Web Part
    MOSS 2010:Visual Studio 2010开发体验(11)——扩展SharePoint Explorer
    MOSS 2010:Visual Studio 2010开发体验(12)——列表开发之列表定义
  • 原文地址:https://www.cnblogs.com/soundcode/p/1911876.html
Copyright © 2020-2023  润新知