﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-点点滴滴-文章分类-Ext&amp;DWR</title><link>http://www.blogjava.net/TonyZhang/category/30389.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 19 Apr 2008 01:24:25 GMT</lastBuildDate><pubDate>Sat, 19 Apr 2008 01:24:25 GMT</pubDate><ttl>60</ttl><item><title>Ext-API详解--core/Ext.js </title><link>http://www.blogjava.net/TonyZhang/articles/194037.html</link><dc:creator>张亦飞</dc:creator><author>张亦飞</author><pubDate>Fri, 18 Apr 2008 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/TonyZhang/articles/194037.html</guid><wfw:comment>http://www.blogjava.net/TonyZhang/comments/194037.html</wfw:comment><comments>http://www.blogjava.net/TonyZhang/articles/194037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TonyZhang/comments/commentRss/194037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TonyZhang/services/trackbacks/194037.html</trackback:ping><description><![CDATA[<div class="postTitle"><a id="viewpost1_TitleUrl" href="http://www.cnitblog.com/yemoo/archive/2007/12/18/37850.html">Ext-API详解--core/Ext.js</a> </div>
<div class="postText"><script src="http://www.cnitblog.com/Files/yemoo/gg1.js" type="text/javascript"></script>&nbsp;&nbsp;&nbsp;&nbsp; <script type="text/javascript"><!-- google_ad_client="pub-6054586558396945" ; google_ad_width="468;
google_ad_height" = 15; google_ad_format="468x15_0ads_al" ; google_ad_channel="" ; google_color_border="FFFFFF" ; google_color_bg="FFFFFF" ; google_color_link="0000FF" ; google_color_text="000000" ; google_color_url="008000" ;
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script><br />
<br />
1、<strong>Ext.apply</strong>(Object obj, Object config, Object defaults ) : Object<br />
将config中的所有属性复制到obj中，如果配置了defaults，则先将defaults中的属性传入obj，然后再将config中属性传入，一般defaults用于定义一些默认值。<br />
<span style="color: #ff0000">注意：每个参数都必须是对象object，而不能是function或其他。<br />
创建object可以通过new function(){}、new Object()、{}等方法创建。</span><br />
<br />
2、<strong>Ext.emptyFn</strong>: Function <br />
用于返回一个空函数，便于在程序中创建空函数。Ext.emptyFn返回function(){}<br />
<br />
3、<strong>Ext.applyIf</strong>(Object obj, Object config) : Object<br />
功能如同Ext.apply,但是只把config中存在而obj不存在的属性复制过去。<br />
<br />
4、<strong>Ext.addBehaviors</strong>( Object obj ) : void<br />
为页面中一个或多个元素添加事件 <br />
元素使用css规则查找，其中元素与事件用<span style="color: #ff0000">@</span>隔开
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.addBehaviors({<br />
&nbsp;&nbsp;&nbsp;//为id为foo的元素下的所有a元素添加click事件<br />
&nbsp;&nbsp;&nbsp;'#foo&nbsp;a@click'&nbsp;:&nbsp;function(e,&nbsp;t){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something<br />
&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;//&nbsp;为多个选择器添加相同的事件(mouseover)。在@之前使用逗号分开<br />
&nbsp;&nbsp;&nbsp;'#foo&nbsp;a,&nbsp;#bar&nbsp;span.some-class@mouseover'&nbsp;:&nbsp;function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something<br />
&nbsp;&nbsp;&nbsp;}<br />
});</span></div>
<br />
5、<strong>Ext.id</strong>( [Mixed el], [String prefix] ) : String&nbsp;&nbsp;<br />
返回一个唯一的id值。<br />
如果只需要获取一个唯一的id值，则直接调用Ext.id()；<br />
如果需要为某个元素设定一个唯一的id值并返回id则调用Ext.id(el)，el为元素Id、Dom对象或Ext的Element对象。<br />
如果需要指定特定的前缀，则需要传入第二个参数，如Ext.id(el,&#8221;myPrix-&#8221;)，默认前缀为ext-gen，如默认返回id可能为ext-gen4，指定了前缀后可能返回myPrix-4。<br />
<br />
6、<strong>Ext.extend</strong>( Object subclass, Object superclass, [Object overrides] ) : void<br />
实现对象继承，目前还不太了解具体原理 ？？？<br />
<br />
7、<strong>Ext.namespace</strong>( String namespace1, String namespace2, String etc ) : void<br />
创建命名空间：<br />
如Ext.namespace("Company","MyNS.mydata","Data.format.string")<br />
然后可以创建如MyNS.mydata.doit=function(){&#8230;}的接口<br />
<span style="color: #ff0000">注：命名空间的简易调用：Ext.ns()，在Ext Api中未给出此用法。</span><br />
<br />
8、<strong>Ext.urlEncode</strong>( Object o ) : String<br />
将一个json对象转换称url参数串，支持通过数组为一个参数设定多个值。<br />
如将{a:1,b:2,c:[1,3,5,7]}转换为a=1&amp;b=2&amp;c=1&amp;c=3&amp;c=5&amp;c=7<br />
<br />
9、<strong>Ext.urlDecode</strong>( String string, [Boolean overwrite] ) : Object<br />
将url参数串转换为json对象，<span style="color: #ff0000">overwrite如果为true，则后面的同名参数值覆盖前面的同名参数值</span>（默认为false即不覆盖而以数组形式返回）。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.urlDecode("a=1</span><span style="color: #ff0000">&amp;b</span><span style="color: #000000">=2</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=1</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=3</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=5</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=7")<br />
返回的对象内容为{a:1,b:2,c:[1,3,5,7]}<br />
Ext.urlDecode("a=1</span><span style="color: #ff0000">&amp;b</span><span style="color: #000000">=2</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=1</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=3</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=5</span><span style="color: #ff0000">&amp;c</span><span style="color: #000000">=7",true)<br />
返回{a:1,b:2,c:7}<br />
</span></div>
<br />
10、<strong>Ext.each</strong>( Array/NodeList/Mixed array, Function fn, Object scope ) : void<br />
遍历array并对每项分别调用fn函数。如果array不是数组则只执行一次。<br />
如果某项fn执行结果<span style="color: #ff0000">返回false（必须是false，undefined无效），</span>遍历退出，后面的array项将不被遍历。<br />
遍历过程中每次为fn传入参数分别为<span style="color: #ff0000">[当前数组项]，[当前索引]和[数组array]</span>三个参数。<br />
Scope用于设定fn函数中的this指针。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.each([1,3,5,7],function(v,i,a){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("index:&nbsp;"+i+"&nbsp;value:&nbsp;"+v+"&nbsp;array.length："+a.length)<br />
});</span></div>
<br />
将循环弹出：<br />
index:0 value:1 array.length：4<br />
index:1 value:3 array.length：4&nbsp;&nbsp;<br />
index:2 value:5 array.length：4&nbsp;&nbsp;<br />
index:3 value:7 array.length：4
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.each([1,3,5,7],function(v,i,a){<br />
&nbsp;&nbsp;&nbsp;&nbsp;alert("index:&nbsp;"+i+"&nbsp;value:&nbsp;"+v+"&nbsp;array.length："+a.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;v!=5;&nbsp;&nbsp;//到第三项后遍历退出<br />
});</span></div>
<br />
<br />
将循环弹出：<br />
index:0 value:1 array.length：4<br />
index:1 value:3 array.length：4&nbsp;&nbsp;<br />
index:2 value:5 array.length：4&nbsp;&nbsp;<br />
<br />
11、<strong>Ext.combine</strong>(arg1,arg2..argn) : Array&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">//该方法在Ext2不推荐再使用</span><br />
用于实现对数组的合并，如果是字符串则作为只有一项的数组合并。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">var&nbsp;a1=[1,3,5],b1=["a","b","c"];var&nbsp;c1="xxyznbde";<br />
Ext.combine(a1,b1,c1)&nbsp;返回[1,3,5,a,b,c,xxyznbde]</span></div>
<br />
12、<strong>Ext. escapeRe</strong>( String str ) : String<br />
将属于正则里的特殊字符进行转义。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.escapeRe("(ab)$\sa342{}[dd]")将返回\(ab\)\$sa342\{\}\[dd\]。</span></div>
<br />
13、<strong>Ext.callback</strong>(cb, scope, args, delay) :void&nbsp;&nbsp;<span style="color: #ff0000">//该方法为Ext的内部方法</span><br />
调用一个函数或延迟调用一个函数。<br />
Cb:调用的函数。<br />
scope:cb中this指针。<br />
args：传如cb的参数，以数组形式表示。<br />
delay：延迟多少毫秒执行cb。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.callback(function(x,y){alert(x+y)},this,[3,5],1000);将于1秒钟后弹出8，即3+5的结果。</span></div>
<br />
14、<strong>Ext.getDom</strong>( Mixed el ) : HTMLElement<br />
根据传入的id/dom节点/Ext的Elemenet对象，返回其dom对象。<br />
如alert(Ext.getDom("a").innerHTML);或<br />
alert(Ext.getDom(document.getElementById("a")).innerHTML);<br />
将返回id为a的元素的innerHTML内容。<br />
<br />
15、<strong>Ext.getDoc()/Ext.getBody()</strong> : Ext.Element<br />
分别返回页面的document对象和body对象，返回值为Ext的Element对象，而非Dom对象。 <br />
<br />
16、<strong>Ext.getCmp</strong>( String id ) : Ext.Component<br />
根据传入的html元素id返回该元素的组件类型，返回值为Ext的Component对象。<br />
必须保证该id对象的元素是Ext的一个内部组件（通过Ext创建的组件），否则什么都不返回。<br />
<br />
17、<strong>Ext.num</strong>( Mixed value, Number defaultValue ) : Number<br />
验证value是否是一个数字，如果是则直接返回否则返回defaultValue。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">alert(Ext.num(5,7))返回5，alert(Ext.num("5",7))&nbsp;返回7</span></div>
<br />
18、<strong>Ext.destroy</strong>( Mixed arg1, Mixed (optional), Mixed (optional) ) : void<br />
销毁创建的Element或组件(Component)，即销毁其所有的事件监听，dom节点，并调用对象本身的destory方法（如果存在的话），传入的参数类型为Ext.Element或Ext. Component，可以一次性传入多个对象进行销毁。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.destory(menu,el,Button);会销毁menu,el,Button三个对象。</span></div>
<br />
19、<strong>Ext.removeNode</strong>(htmlElement el): void&nbsp;&nbsp;<span style="color: #ff0000">//Ext内部方法</span><br />
删除指定的dom节点。传入参数为dom对象。<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.removeNode(document.getElementById("ab"));</span></div>
<br />
20、<strong>Ext.type</strong>( Mixed object ) : String<br />
返回传入的对象的类型。<br />
包括如下类型：<br />
string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace<br />
如
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.type("ab")返回string<br />
Ext.type(20)返回number<br />
Ext.type([3,5,6])返回array<br />
Ext.type(/reg/)返回regexp<br />
Ext.type(document.body)返回element。<br />
</span></div>
<br />
21、<strong>Ext.isEmpty</strong>( Mixed value, [Boolean allowBlank] ) : Boolean<br />
检查一个值是否为null/undefined或是否是空，如果是则返回true。<br />
如果传入allowBlank为true，则只检查是否为null或undefined。<br />
如：
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Ext.isEmpty("a")返回false，<br />
Ext.isEmpty("")返回true，<br />
Ext.isEmpty("",true)返回false，<br />
Ext.isEmpty(null)返回true。</span></div>
<br />
22、<strong>Ext.value</strong>(String v,String defaultValue[,[Boolean allowBlank]):String&nbsp;&nbsp;<span style="color: #ff0000">//Ext内部方法</span><br />
检查v是否是为null/undefined或空，如果是则返回defaultValue，否则返回v。如果allowBlank参数为true，则允许v为空（即当v为空时不返回defaultValue而返回空）。&nbsp;&nbsp;</div>
<img src ="http://www.blogjava.net/TonyZhang/aggbug/194037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TonyZhang/" target="_blank">张亦飞</a> 2008-04-18 14:57 <a href="http://www.blogjava.net/TonyZhang/articles/194037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR - dwr.xml</title><link>http://www.blogjava.net/TonyZhang/articles/193037.html</link><dc:creator>张亦飞</dc:creator><author>张亦飞</author><pubDate>Tue, 15 Apr 2008 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/TonyZhang/articles/193037.html</guid><wfw:comment>http://www.blogjava.net/TonyZhang/comments/193037.html</wfw:comment><comments>http://www.blogjava.net/TonyZhang/articles/193037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TonyZhang/comments/commentRss/193037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TonyZhang/services/trackbacks/193037.html</trackback:ping><description><![CDATA[<h2><a name="dwr.xml-%E9%85%8D%E7%BD%AEDWRdwr.xml"></a>配置DWR - dwr.xml</h2>
<p>dwr.xml是DWR的配置文件。默认情况下，应该把它放到WEB-INF目录(web.xml的目录)下。</p>
<h2><a name="dwr.xml-DTD"></a>DTD</h2>
<p>这里还有一个dwr.xml对应的<span class="nobr"><a href="http://www.getahead.ltd.uk/dwr/dwr10.dtd" rel="nofollow">DTD文档<sup><img class="rendericon" height="7" alt="" src="http://wiki.javascud.org/images/icons/linkext7.gif" width="7" align="absMiddle" border="0" /></sup></a></span>以及一个用<span class="nobr"><a href="http://dtddoc.sourceforge.net/" rel="nofollow">DTDDoc<sup><img class="rendericon" height="7" alt="" src="http://wiki.javascud.org/images/icons/linkext7.gif" width="7" align="absMiddle" border="0" /></sup></a></span>生成的<span class="nobr"><a href="http://getahead.ltd.uk/dwr-demo/dtddoc/" rel="nofollow">参考手册<sup><img class="rendericon" height="7" alt="" src="http://wiki.javascud.org/images/icons/linkext7.gif" width="7" align="absMiddle" border="0" /></sup></a></span>。</p>
<h2><a name="dwr.xml-%E5%88%9B%E5%BB%BAdwr.xml%E6%96%87%E4%BB%B6"></a>创建dwr.xml文件</h2>
<p>dwr.xml文件的结构如下:</p>
<div class="code">
<div class="codeContent">
<pre class="code-xml">&lt;!DOCTYPE dwr PUBLIC
<span class="code-quote">"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"</span>
<span class="code-quote">"http://www.getahead.ltd.uk/dwr/dwr10.dtd"</span>&gt;
<span class="code-tag">&lt;dwr&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- init is only needed if you are extending DWR --&gt;</span></span>
<span class="code-tag">&lt;init&gt;</span>
<span class="code-tag">&lt;creator id=<span class="code-quote">"..."</span> class=<span class="code-quote">"..."</span>/&gt;</span>
<span class="code-tag">&lt;converter id=<span class="code-quote">"..."</span> class=<span class="code-quote">"..."</span>/&gt;</span>
<span class="code-tag">&lt;/init&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- without allow, DWR isn't allowed to do anything --&gt;</span></span>
<span class="code-tag">&lt;allow&gt;</span>
<span class="code-tag">&lt;create creator=<span class="code-quote">"..."</span> javascript=<span class="code-quote">"..."</span>/&gt;</span>
<span class="code-tag">&lt;convert converter=<span class="code-quote">"..."</span> match=<span class="code-quote">"..."</span>/&gt;</span>
<span class="code-tag">&lt;/allow&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- you may need to tell DWR about method signatures --&gt;</span></span>
<span class="code-tag">&lt;signatures&gt;</span>
...
<span class="code-tag">&lt;/signatures&gt;</span>
<span class="code-tag">&lt;/dwr&gt;</span></pre>
</div>
</div>
<h2><a name="dwr.xml-%E6%9C%AF%E8%AF%AD"></a>术语</h2>
<p>这里是一些必须理解的术语 - 参数会被<strong>converted</strong>，远程Bean会被<strong>created</strong>。所以如果你有一个叫A的bean，它有一个方法叫A.blah(B) 那么你需要一个A的<strong>creator</strong>和一个B的<strong>converter</strong>。</p>
<h3><a name="dwr.xml-%3Callow%3E"></a>&lt;allow&gt;</h3>
<p><em>allow</em>段落里面定义的试DWR可以创建和转换的类。</p>
<h3><a name="dwr.xml-Creators"></a>Creators</h3>
<p>我们要调用的每个类都需要一个&lt;create ...&gt;定义。creator有几种。比较通用的是new关键字和Spring。更多的信息可以参见<span class="error">[Creaters]</span>文档。</p>
<h3><a name="dwr.xml-Converters"></a>Converters</h3>
<p>我们必须保证所有的参数都可以被转换。JDK中的多数类型已经有转换器了，但是你需要给DWR转换你的代码的权利。一般来说JavaBean的参数需要一个&lt;convert ...&gt;定义。</p>
<p>默认情况下，如下类型不需要定义就可以转换：</p>
<ul>
    <li>所有的原生类型 boolean,int,double, 等等
    <li>原生类型的对象类型 Boolean,Integer,等等
    <li>java.lang.String
    <li>java.util.Date 和SQL中的Date
    <li>以上类型组成的数组
    <li>以上类型的集合类型 (Lists, Sets, Maps, Iterators, 等)
    <li>从DOM, XOM, JDOM 和 DOM4J中的DOM对象 (类似 Element 和 Document) </li>
</ul>
<p>要了解如何转换你的JavaBean或者其他类型的参数请查看<a title="Converters" href="http://wiki.javascud.org/display/dwrcn/Converters">Converters</a>文档。</p>
<h3><a name="dwr.xml-%3Cinit%3E"></a>&lt;init&gt;</h3>
<p>可选的init部分用来声明创造bean的类和转换bean的类。多数情况下你不需要用到他们。如果你需要定义一个新的Creator [<span class="nobr"><a href="http://getahead.ltd.uk/dwr-demo/javadoc/uk/ltd/getahead/dwr/Creator.html" rel="nofollow">JavaDoc<sup><img class="rendericon" height="7" alt="" src="http://wiki.javascud.org/images/icons/linkext7.gif" width="7" align="absMiddle" border="0" /></sup></a></span>] 和 Converter [<span class="nobr"><a href="http://getahead.ltd.uk/dwr-demo/javadoc/uk/ltd/getahead/dwr/Converter.html" rel="nofollow">JavaDoc<sup><img class="rendericon" height="7" alt="" src="http://wiki.javascud.org/images/icons/linkext7.gif" width="7" align="absMiddle" border="0" /></sup></a></span>] ， 那么你就需要在这里定义他们。但是建议你现检查一下DWR是不是已经支持了。</p>
<p>在init部分里有了定义只是告诉DWR这些扩展类的存在，给出了如何使用的信息。这时他们还没有被使用。这中方式很像Java中的import语句。多数类需要在使用前先import一下，但是只有import语句并不表明这个类已经被使用了。每一个creator和converter都用id属性，以便后面使用。</p>
<h3><a name="dwr.xml-%3Csignatures%3E"></a>&lt;signatures&gt;</h3>
<p>DWR使用反射来找出在转换时应该用那种类型。有时类型信息并不明确，这时你可以在这里写下方法的签名来明确类型。详细信息查看<a title="Signatures" href="http://wiki.javascud.org/display/dwrcn/Signatures">Signatures</a>部分。</p>
<h2><a name="dwr.xml-%E5%A4%9A%E4%B8%AAdwr.xml%E6%96%87%E4%BB%B6"></a>多个dwr.xml文件</h2>
<p>可以有多个dwr.xml文件(详细信息见<a title="WEB-INF Configuration" href="http://wiki.javascud.org/display/dwrcn/WEB-INF+Configuration">web.xml文档</a>)。每个文件中的定义会被加在一起。DWR用这个功能来加载基础配置文件。我们可以看看标准被配置文件来了解dwr.xml的内容。</p>
<img src ="http://www.blogjava.net/TonyZhang/aggbug/193037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TonyZhang/" target="_blank">张亦飞</a> 2008-04-15 11:33 <a href="http://www.blogjava.net/TonyZhang/articles/193037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>