??xml version="1.0" encoding="utf-8" standalone="yes"?>在线播放日韩专区,久久久精品区,青青免费在线视频http://www.aygfsteel.com/lishen226/category/38298.htmlzh-cnMon, 16 Mar 2009 04:18:48 GMTMon, 16 Mar 2009 04:18:48 GMT60dwr配置文gdwr.xml解http://www.aygfsteel.com/lishen226/archive/2009/03/16/259927.html锋行锋行Mon, 16 Mar 2009 01:13:00 GMThttp://www.aygfsteel.com/lishen226/archive/2009/03/16/259927.htmlhttp://www.aygfsteel.com/lishen226/comments/259927.htmlhttp://www.aygfsteel.com/lishen226/archive/2009/03/16/259927.html#Feedback0http://www.aygfsteel.com/lishen226/comments/commentRss/259927.htmlhttp://www.aygfsteel.com/lishen226/services/trackbacks/259927.htmldwr配置文gdwr.xml解
2007-08-10 00:16

本h对dwr 中文文关于dwr.xml做的一个整?Ua体力z,有用得着的朋友别忘顶一下,留个联系方式一起交学习!

dwr.xml是DWR的配|文件。默认情况下Q应该把它放到WEB-INF目录(web.xml的目??/p>

创徏dwr.xml文g

dwr.xml文g的结构如?

<!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 id="..." class="..."/>    <converter id="..." class="..."/>  </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>

术语

q里是一些必ȝ解的术语 - 参数会被convertedQ远EBean会被created。所以如果你有一个叫A的beanQ它有一个方法叫A.blah(B) 那么你需要一个A?strong>creator和一个B?strong>converter?/p>

一Q?lt;allow>

allowD落里面定义的试DWR可以创徏和{换的cR?/p>

二:Creators

dwr.xml文g中的create元素的结构如下:

<allow>  <create creator="..." javascript="..." scope="...">    <param name="..." value="..."/>    <auth method="..." role="..."/>    <exclude method="..."/>    <include method="..."/>  </create>   ...</allow>

q里的多数元素都是可选的 - 你真正必ȝ道的是指定一个creator和一个javascript名字?/p>

creator属?/strong> 是必ȝ - 它用来指定用U创造器?/p>

默认情况下DWR1.1?U创造器。它们是Q?/p>

  • new: 用Java的new关键字创造对象?
  • none: 它不创徏对象Q看下面的原因?(v1.1+)
  • scripted: 通过BSF使用脚本语言创徏对象Q例如BeanShell或Groovy?
  • spring: 通过Spring框架讉KBean?
  • jsf: 使用JSF的Bean?(v1.1+)
  • struts: 使用Struts的FormBean?(v1.1+)
  • pageflow: 讉KBeehive或Weblogic的PageFlow?(v1.1+)

 

如果你需要写自己的创造器Q你必须在init部分注册它?/p>

javascript属?/strong> 用于指定览器中q个被创造出来的对象的名字。你不能使用Javascript的关键字?/p>

scope属?/strong> 非常cMservlet规范中的scope?它允怽指定q个bean在什么生命范围。选项?application", "session", "request" ?page"。这些值对于Servlet和JSP开发者来说应该相当熟悉了?/p>

scope属性是可选的。默认是"page"。如果要使用"session"需要cookies。当前的DWR不支持ULR重写?/p>

param元素 被用来指定创造器的其他参敎ͼ每种构造器各有不同。例如,"new"创造器需要知道要创徏的对象类型是什么。每一个创造器的参数在各自的文中能找到。请查看上面的链接?/p>

include和exclude元素 允许创造器来限制类中方法的讉K。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗C默认的讉K{略?拒绝"Q如果是exclude列表则暗C默认的讉K{略?允许"?/p>

例如要拒l防范除?em>setWibble()以外的所有方法,你应该把如下内容d到dwr.xml中?/p>

<create creator="new" javascript="Fred">  <param name="class" value="com.example.Fred"/>  <include method="setWibble"/></create>

对于加入到create元素中的cȝ所有方法都是默认可见的?/p>

auth元素 允许你指定一个J2EE的角色作为将来的讉K控制?

<create creator="new" javascript="Fred">  <param name="class" value="com.example.Fred"/>  <auth method="setWibble" role="admin"/></create>

 

new创造器在DWR中已l默认声明了Q?strong><creator id="new" class="uk.ltd.getahead.dwr.create.NewCreator"/> 。你不需要在dwr.xml文g中添加这D话Q它已经存在于DWR的内部dwr.xml文g中了?/p>

q个创造器通过c默认的够早函数创造对象实例。用new创造器有一些好处:

  • 安全:DWR创造的对象生存的事件越短,多次调用中间的g一致的错误Z少?
  • 内存消耗低Q?如果你的站点用户量非常大Q这个创造器可以减少VM的内存溢出?

你可以通过下面的方式用new创造器来创造远E调用BeanQ?/p>

<allow>  <create creator="new" javascript="Blah">    <param name="class" value="java.util.Date"/>  </create>   ... </allow>

q些代码?java.util.Date 映射成JavascriptQƈ且命名ؓBlahQ所以在Javascript中当你调用Blah.toString(reply) 那么一个新?java.util.Date ׃通过默认的构造函数创造出来, 然后 toString() Ҏ被调用, 然后l果数据q回lreplyҎ(在这个例子中date是字W串格式)?/p>

 


 

none'创造器不创ZQ何对?- 它会假设你不需要创建对象。这有可能是对的Q有两个原因?/p>

你可能在使用的scope不是"page"(看上?Qƈ在在前面已经把这个对象创建到q个scope中了Q这时你׃需要再创徏对象了?/p>

q有一U情冉|要调用的Ҏ是静态的Q这时也不需要创建对象。DWR会在调用创徏器之前先查一下这个方法是不是静态的?/p>

对于上诉两种情况Q你仍然需要class参数Q用来告诉DWR它是在操作的对象cd是什么?/p>

 


 

scripted创造器在DWR中已l默认声明了Q?lt;creator id="script" class="uk.ltd.getahead.dwr.create.ScriptedCreator"/>

q个创造器用BSF来执行脚本得到BeanQ例如:

<allow>   ...  <create creator="script" javascript="EmailValidator">    <param name="language" value="beanshell"/>    <param name="script">       import org.apache.commons.validator.EmailValidator;       return EmailValidator.getInstance();    </param>  </create>   ...</allow>

script创造器有如下参敎ͼ

参数 DWR版本 描述
language 1.0 脚本语言Q字W串Q例?beanshell'. (必需)
script 1.0 要执行的脚本?(必需Q除非scriptPath参数存在)
scriptPath 1.1 脚本文g路径?(必需Q除非script参数存在)
reloadable 1.1 是否脚本文件的改动Q以重新加蝲 (可? 默认true)
class 1.0 创造出对象的类?可?. 如果没有DWR通过创造器得到cd?/td>

需要了解的主题

要用这个创造器Q你需要把一些辅助库攑ֈWEB-INF/lib文g夹下Q?span class="nobr">BSF的jar?sup>Q你要用?span class="nobr">脚本语言的jar?sup>?/p>

当一个类是用script创造出来的Qƈ且scope是session或applicationQ如果你的脚本改变,session中的cdscript中的cd不一致了。这样会出现错误。虽然web容器不用重启Q但是用户需要先d(或以某种方式清空session)Q然后再d?/p>

当clazz参数不ؓI,q且用来创造新实例QDWR单的调用 class.newInstance() Ҏ。这U方法是没问题的Q除非脚本正在用某个参数创徏一个类Q或者调用某个函数来配置q个cR?不幸的是Q每ơ请求都要重新运行scriptq成上面的问题?/p>



锋行 2009-03-16 09:13 发表评论
]]>
վ֩ģ壺 | | ԭ| | | | | | | ƽɽ| | | | | | | ϲ| Ϊ| | °| ̨| | н| ƽ| | Դ| | | Ϸ| | | | | | | ʼ| | | | ̨| |