<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java堂 &#187; ajax</title>
	<atom:link href="http://www.javatang.com/archives/tag/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://www.javatang.com</link>
	<description>Java Tang</description>
	<lastBuildDate>Tue, 07 Sep 2010 03:26:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>IE6中出现“无法设置selected属性”的bug及解决方法</title>
		<link>http://www.javatang.com/archives/2008/10/19/0704277.html</link>
		<comments>http://www.javatang.com/archives/2008/10/19/0704277.html#comments</comments>
		<pubDate>Sun, 19 Oct 2008 18:07:04 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[Web&Server]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.javatang.com/archives/2008/10/19/0704277.html</guid>
		<description><![CDATA[如果在IE6中设置select控件的selected属性的时候，会提示“无法设置selected属性。未指明的错误。”比如执行如下代码： var selectObj = document.getElementById('selectId'); // 执行下面语句之后出错 selectObj.options[1].selected = true; 后来查了一下资料，发现这个错误在IE5.5、7及Firefox等浏览器下面没有问题，唯独IE6下有如下的提示。后来有人找到了一个解决的方法，就是设置selected属性的时候使用setTimeout函数设定一个时间即可，代码如下： var selectObj = document.getElementById('selectId'); // 使用setTimeout之后问题解决 setTimeout(function()&#160;{ &#160; &#160; selectObj.options[1].selected = true; }, 1); 参考资料： 急！请教高手：利用xml的selected问题！ Related Posts:Javascript怎样设置文本框的readonly属性？真的是不错的js控制区域方向的代码用js检测是否安装指定插件的函数ExtJS中TextField或TextArea支持按键事件的条件Javascript的国际化方案]]></description>
			<content:encoded><![CDATA[<p>如果在IE6中设置select控件的selected属性的时候，会提示“无法设置selected属性。未指明的错误。”比如执行如下代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">selectObj</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">selectId</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">// 执行下面语句之后出错</span></li>
<li><span style="color: Blue;">selectObj</span><span style="color: Gray;">.</span><span style="color: Blue;">options</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">selected</span><span style="color: Gray;"> = </span><span style="color: Green;">true</span><span style="color: Gray;">;</span></li></ol></div>
<p>后来查了一下资料，发现这个错误在IE5.5、7及Firefox等浏览器下面没有问题，唯独IE6下有如下的提示。后来有人找到了一个解决的方法，就是设置selected属性的时候使用setTimeout函数设定一个时间即可，代码如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">selectObj</span><span style="color: Gray;"> = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">selectId</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">// 使用setTimeout之后问题解决</span></li>
<li><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">selectObj</span><span style="color: Gray;">.</span><span style="color: Blue;">options</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">selected</span><span style="color: Gray;"> = </span><span style="color: Green;">true</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>参考资料：<br />
<a href="http://bbs.51js.com/viewthread.php?tid=48348&#038;fpage=1&#038;highlight=" target="_blank">急！请教高手：利用xml的selected问题！</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/10/06/5104204.html" rel="bookmark" class="crp_title">Javascript怎样设置文本框的readonly属性？</a></li><li><a href="http://www.javatang.com/archives/2006/09/03/064362.html" rel="bookmark" class="crp_title">真的是不错的js控制区域方向的代码</a></li><li><a href="http://www.javatang.com/archives/2007/10/28/2751231.html" rel="bookmark" class="crp_title">用js检测是否安装指定插件的函数</a></li><li><a href="http://www.javatang.com/archives/2010/07/07/5638409.html" rel="bookmark" class="crp_title">ExtJS中TextField或TextArea支持按键事件的条件</a></li><li><a href="http://www.javatang.com/archives/2008/04/20/5034268.html" rel="bookmark" class="crp_title">Javascript的国际化方案</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2008/10/19/0704277.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何使用DWR2.0的注解功能</title>
		<link>http://www.javatang.com/archives/2008/07/07/5648271.html</link>
		<comments>http://www.javatang.com/archives/2008/07/07/5648271.html#comments</comments>
		<pubDate>Mon, 07 Jul 2008 08:56:48 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[DynamicLanguage]]></category>
		<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false">http://www.javatang.com/archives/2008/07/07/5648271.html</guid>
		<description><![CDATA[DWR2.0新增加了JDK5的注解(Annotation)功能，使用注解功能之后可以从很大程度上简化了原来的dwr.xml的配置，使用起来非常的方便。 一、配置DWR使用注解功能 如果让dwr使用注解功能需要在web.xml进行如下配置： &#60;servlet&#62; &#160; &#160; &#160; &#160; &#60;servlet-name&#62;dwr-invoker&#60;/servlet-name&#62; &#160; &#160; &#160; &#160; &#60;servlet-class&#62;org.directwebremoting.servlet.DwrServlet&#60;/servlet-class&#62; &#160; &#160; &#160; &#160; &#60;init-param&#62; &#160; &#160; &#160; &#160; &#160; &#160; &#60;param-name&#62;debug&#60;/param-name&#62; &#160; &#160; &#160; &#160; &#160; &#160; &#60;param-value&#62;true&#60;/param-value&#62; &#160; &#160; &#160; &#160; &#60;/init-param&#62; &#160; &#160; &#160; &#160; &#60;!-- 将设定注解的域对象和业务实现类放在下面列表中，中间使用逗号间隔 --&#62; &#160; &#160; &#160; &#160; &#60;init-param&#62; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>DWR2.0新增加了JDK5的注解(Annotation)功能，使用注解功能之后可以从很大程度上简化了原来的dwr.xml的配置，使用起来非常的方便。</p>
<p>一、配置DWR使用注解功能</p>
<p>如果让dwr使用注解功能需要在web.xml进行如下配置：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">servlet</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">servlet-name</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">dwr-invoker</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">servlet-name</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">servlet-class</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">org.directwebremoting.servlet.DwrServlet</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">servlet-class</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">init-param</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param-name</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">debug</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">param-name</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param-value</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">true</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">param-value</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">init-param</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- 将设定注解的域对象和业务实现类放在下面列表中，中间使用逗号间隔 --&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">init-param</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param-name</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">classes</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">param-name</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param-value</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; com.javatang.domain.Book,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; com.javatang.bank.Bank,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; com.javatang.dao.BookDao</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">param-value</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">init-param</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">servlet</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">servlet-mapping</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">servlet-name</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">dwr-invoker</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">servlet-name</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">url-pattern</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">/scripts/ajax/*</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">url-pattern</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">servlet-mapping</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>这样设置之后就可以在dwr中使用注解了，非常的方便。</p>
<p>二、DWR提供的注解类型<br />
经常用到的注解主要有：@RemoteProxy、@RemoteMethod、@DataTransferObject和@RemoteProperty。</p>
<p>1. @RemoteProxy和@RemoteMethod<br />
@RemoteMethod对应于原来dwr.xml文件中的create标签，用于创建DWR所提供的远程方法；而@RemoteMethod对应于create标签中的 &lt;include method=&#8221;"/>，用来指定所要暴露的方法名称。我们举例来说明：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">@</span><span style="color: Blue;">RemoteProxy</span><span style="color: Olive;">(</span><span style="color: Blue;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bankFunctions</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">Bank</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; @</span><span style="color: Blue;">RemoteMethod</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">buy</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ...</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>从上面可以看出，@RemoteProxy表示这个类将用于远程方法，而使用@RemoteMethod指定所要暴露的方法，没有使用@RemoteMethod的方法将不会显示在客户端。<br />
上面的注释使用dwr.xml表示如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">dwr</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://getahead.ltd.uk/dwr/dwr20.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">create</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">creator</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">new</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">javascript</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bankFunctions</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">include</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">buy</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">create</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>如果使用Spring中的DAO活逻辑层则需要进行如下的设置：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">// BookDao</span></li>
<li><span style="color: Gray;">@</span><span style="color: Blue;">RemoteProxy</span><span style="color: Olive;">(</span><span style="color: Blue;">creator</span><span style="color: Gray;"> = </span><span style="color: Blue;">SpringCreator</span><span style="color: Gray;">.</span><span style="color: Green;">class</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">creatorParams</span><span style="color: Gray;"> = @</span><span style="color: Blue;">Param</span><span style="color: Olive;">(</span><span style="color: Blue;">name</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">beanName</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Blue;">value</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bookDao</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bookFunctions</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">BookDao</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; @</span><span style="color: Blue;">RemoteMethod</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">addBook</span><span style="color: Olive;">(</span><span style="color: Blue;">Book</span><span style="color: Gray;"> </span><span style="color: Blue;">book</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ...</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>通过指定@RemoteProxy中的creator类型为SpringCreator，然后在creatorParams指定对应的beanName名称。对应的dwr.xml文件如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">dwr</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://getahead.ltd.uk/dwr/dwr20.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">create</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">creator</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">spring</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">javascript</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bookFunctions</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">beanName</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bookDao</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">include</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">addBook</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">create</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>2. @DataTransferObject和@RemoteProperty<br />
@DataTransferObject对应于原来dwr.xml文件中的convert标签，用于转换Java对象；@RemoteProperty则对应于convert标签中的 &lt;param name=&#8221;include&#8221; value=&#8221;" />。</p>
<p>举例说明一下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">@</span><span style="color: Blue;">DataTransferObject</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Book</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; @</span><span style="color: Blue;">RemoteProperty</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; @</span><span style="color: Blue;">RemoteProperty</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">name</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Book</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">getId</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">id</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">setId</span><span style="color: Olive;">(</span><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">id</span><span style="color: Gray;"> = </span><span style="color: Blue;">id</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">getName</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">name</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">setName</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">name</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Gray;"> = </span><span style="color: Blue;">name</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>@RemoteProperty可以放在JavaBean中的私有变量上面，也可以放在getXXX方法上面。另外如果想将JavaBean中所有的属性都暴露出来的话，不需要在任何属性上面添加@RemoteProperty注释就可以了。</p>
<p>上面的注释对应的dwr.xml文件如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">dwr</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://getahead.ltd.uk/dwr/dwr20.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">convert</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">converter</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bean</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">match</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">com.javatang.domain.Book</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">param</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">include</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">id, name</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">convert</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- 或者用下面的方式也可以</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &lt;convert converter=&quot;bean&quot; match=&quot;com.javatang.domain.Book&quot; /&gt;</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; --&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>关于具体每个注释使用的方法已经所包含的参数可以参考Java Doc。使用DWR2.0的注解极大的简化了原来dwr.xml的配置，非常的方便。</p>
<p>参考资料：<br />
<a href="http://directwebremoting.org/dwr/server/annotations" target="_blank">DWR Annotations</a><br />
<a href="http://www.matrix.org.cn/thread.shtml?topicId=9ebc11f7-329a-11dc-a189-fd356e54e2a4&#038;forumId=41&#038;fid=41" target="_blank">[原创]DWR Annotations and Spring</a><br />
<a href="http://www.cnblogs.com/kylindai/archive/2008/04/02/1135286.html?P_AVPASS=PHDGBITAVPASST" target="_blank">DWR Annotations 使用 SpringCreator</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/20/254879.html" rel="bookmark" class="crp_title">DWR文档之开始使用 DWR</a></li><li><a href="http://www.javatang.com/archives/2007/03/11/3030123.html" rel="bookmark" class="crp_title">DWR文档之dwr.xml</a></li><li><a href="http://www.javatang.com/archives/2008/06/19/0308269.html" rel="bookmark" class="crp_title">JPA和Hibernate注解的继承问题</a></li><li><a href="http://www.javatang.com/archives/2007/03/13/5026128.html" rel="bookmark" class="crp_title">按照指定的类型排序</a></li><li><a href="http://www.javatang.com/archives/2006/08/30/285461.html" rel="bookmark" class="crp_title">使用java.util.zip对字符串进行压缩和解压缩</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2008/07/07/5648271.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提高页面相应速度之压缩优化js和css文件</title>
		<link>http://www.javatang.com/archives/2008/04/13/0212267.html</link>
		<comments>http://www.javatang.com/archives/2008/04/13/0212267.html#comments</comments>
		<pubDate>Sun, 13 Apr 2008 17:02:12 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[DynamicLanguage]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.javatang.com/archives/2008/04/13/0212267.html</guid>
		<description><![CDATA[Steve Souders在他的《High Performance Web Sites》一书中提出提高网页效率的14条准则，这些可以使用Yahoo! YSlow来进行一个比较形象的检测。 这里主要来说一下第一条准则：Make Fewer HTTP Requests，意思就是尽可能的减少HTTP请求。当时要达到这个目的有很多种方法，其中最重要的一点就是将CSS文件和Javascript文件分别进行压缩和合并，这样就在很大程度上减少了浏览器对服务器的HTTP请求此处，另外一旦被浏览器下载到本地可以对此进行缓存，从而提高了加载速度。 有关于这方面的工具最优秀且使用最为广泛的开源软件非YUI Compressor莫属了。但是YUICompressor只能使用命令行一个个对js或css文件进行压缩，现在我们就通过使用ant脚本来达到批量压缩合并多个文件的目的。 下面以压缩js文件为例进行说明。 首先做一个关于js文件编码规范的约定：所有的原始文件均为 .source.js，经过压缩处理后文件变为.js，将多个压缩后的文件合并后的文件名称为all-min.js。 接下来可以写下面的ant脚本： &#60;!-- 对YUICompressor的引用 --&#62; &#60;property&#160;name=&#34;js.dir&#34; value=&#34;${web.dir}/scripts&#34; /&#62; &#60;property&#160;name=&#34;js.release.name&#34; value=&#34;all-min.js&#34;/&#62; &#160; &#60;!-- 删除之前压缩合并过的文件 --&#62; &#60;delete&#62; &#160; &#160; &#60;fileset&#160;dir=&#34;${js.dir}&#34; includes=&#34;${js.release.name}&#34;/&#62; &#60;/delete&#62; &#160; &#160; &#160; &#160; &#60;!-- 执行 yuicompressor 压缩JS &#160;&#160; -- parallel=&#34;false&#34;：对fileset中的每个文件都执行一次executable参数的命令 &#160; -- dest 执行目录 &#160;&#160; --&#62; &#60;apply&#160;executable=&#34;java&#34; parallel=&#34;false&#34; verbose=&#34;true&#34; dest=&#34;${js.dir}&#34;&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oreillynet.com/pub/au/2951" target="_blank">Steve Souders</a>在他的<a href="http://www.oreilly.com/catalog/9780596529307/index.html" target="_blank">《High Performance Web Sites》</a>一书中提出提高网页效率的14条准则，这些可以使用Yahoo! <a href="http://developer.yahoo.com/yslow/" target="_blank">YSlow</a>来进行一个比较形象的检测。</p>
<p>这里主要来说一下第一条准则：Make Fewer HTTP Requests，意思就是尽可能的减少HTTP请求。当时要达到这个目的有很多种方法，其中最重要的一点就是将CSS文件和Javascript文件分别进行压缩和合并，这样就在很大程度上减少了浏览器对服务器的HTTP请求此处，另外一旦被浏览器下载到本地可以对此进行缓存，从而提高了加载速度。</p>
<p>有关于这方面的工具最优秀且使用最为广泛的开源软件非<a href="http://developer.yahoo.com/yui/compressor/" target="_blank">YUI Compressor</a>莫属了。但是YUICompressor只能使用命令行一个个对js或css文件进行压缩，现在我们就通过使用ant脚本来达到批量压缩合并多个文件的目的。</p>
<p>下面以压缩js文件为例进行说明。</p>
<p>首先做一个关于js文件编码规范的约定：所有的原始文件均为 <filename>.source.js，经过压缩处理后文件变为<filename>.js，将多个压缩后的文件合并后的文件名称为all-min.js。</p>
<p>接下来可以写下面的ant脚本：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">&lt;!-- 对YUICompressor的引用 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">property</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js.dir</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${web.dir}/scripts</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">property</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">js.release.name</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">all-min.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;!-- 删除之前压缩合并过的文件 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">delete</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fileset</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">dir</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">includes</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.release.name}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">delete</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: #ffa500;">&lt;!-- 执行 yuicompressor 压缩JS</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; -- parallel=&quot;false&quot;：对fileset中的每个文件都执行一次executable参数的命令</span></li>
<li><span style="color: #ffa500;">&nbsp; -- dest 执行目录</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">apply</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">executable</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">java</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">parallel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">false</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">verbose</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">true</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">dest</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fileset</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">dir</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">include</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">**/*.source.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">fileset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">arg</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">line</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-jar</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">arg</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">path</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${yuicompressor}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- 设置待处理源文件及处理后输出文件的编码格式 --&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">arg</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">line</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">--charset utf-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">srcfile</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">arg</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">line</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-o</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">&lt;!-- 指定文件命名规则 --&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">mapper</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">glob</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">from</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">*.source.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">to</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">*.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">targetfile</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">apply</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&lt;!-- 合并文件 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">concat</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">destfile</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}/${js.release.name}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">fixlastline</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">true</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fileset</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">dir</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">include</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">**/*.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.release.name}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">**/*.source.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">i18n/*.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">fileset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">concat</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: #ffa500;">&lt;!-- 删除生成的临时文件 --&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">delete</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">fileset</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">dir</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.dir}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">include</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">**/*.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${js.release.name}</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">**/*.source.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">exclude</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">i18n/*.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">fileset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">delete</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>参考资料：<br />
<a href="http://www.julienlecomte.net/blog/2007/09/16/" target="_blank">Building Web Applications With Apache Ant</a><br />
<a href="http://blog.gomilko.com/2007/11/29/yui-compression-tool-as-ant-task/" target="_blank">YUI Compression tool as Ant Task</a><br />
<a href="http://blog.csdn.net/lvyuanfang/archive/2007/10/27/1849387.aspx" target="_blank">用yuicompressor和Ant压缩Ext的CSS文件</a><br />
<a href="http://www.aliued.cn/?p=453" target="_blank">用YSlow分析我们页面（完整版）</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/04/12/140116.html" rel="bookmark" class="crp_title">理解Java中的字符编码</a></li><li><a href="http://www.javatang.com/archives/2007/06/14/5433176.html" rel="bookmark" class="crp_title">Lucene创建索引时出现的segments或deletable拒绝访问异常的原因</a></li><li><a href="http://www.javatang.com/archives/2007/01/27/420290.html" rel="bookmark" class="crp_title">Eclipse中安装设置CDT</a></li><li><a href="http://www.javatang.com/archives/2006/04/13/245817.html" rel="bookmark" class="crp_title">搜索引擎登陆</a></li><li><a href="http://www.javatang.com/archives/2007/10/28/2751231.html" rel="bookmark" class="crp_title">用js检测是否安装指定插件的函数</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2008/04/13/0212267.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DWR文档之dwr.xml</title>
		<link>http://www.javatang.com/archives/2007/03/11/3030123.html</link>
		<comments>http://www.javatang.com/archives/2007/03/11/3030123.html#comments</comments>
		<pubDate>Sun, 11 Mar 2007 01:30:30 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文出处: http://www.javatang.com/archives/2007/03/11/3030123.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 dwr.xml 是用来配置DWR的文件。默认情况下需要将其同web.xml一起放在WEB-INF文件夹中。 DTD 这里有一个用于 dwr.xml的 DTD文档，另外还有一个用DTDDoc创建的参考文档。 创建 dwr.xml 文件 dwr.xml 文件结构如下： &#60;!DOCTYPE dwr PUBLIC&#160; &#160; &#160; &#34;-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN&#34;&#160; &#160; &#160; &#34;http://www.getahead.ltd.uk/dwr/dwr10.dtd&#34;&#62;&#160; &#160; &#60;dwr&#62;&#160; &#160; &#160; &#60;!-- init is only needed if you are extending DWR --&#62;&#160; &#160; &#60;init&#62;&#160; &#160; &#160; &#60;creator&#160;id=&#34;...&#34; class=&#34;...&#34;/&#62;&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>原文出处: http://www.javatang.com/archives/2007/03/11/3030123.html<br />
翻译: Jet Mah<br />
声明: 请维持文章的完整性任意转载</p>
<p>dwr.xml 是用来配置DWR的文件。默认情况下需要将其同web.xml一起放在WEB-INF文件夹中。</p>
<p><strong>DTD</strong><br />
这里有一个用于 dwr.xml的 <a target="_blank" href="http://getahead.org/dwr/dwr10.dtd">DTD文档</a>，另外还有一个用<a target="_blank" href="http://dtddoc.sourceforge.net/">DTDDoc</a>创建的<a target="_blank" href="http://getahead.org/dwr-demo/dtddoc/">参考文档</a>。</p>
<p><strong>创建 dwr.xml 文件</strong><br />
dwr.xml 文件结构如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">dwr</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.getahead.ltd.uk/dwr/dwr10.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">&lt;!-- init is only needed if you are extending DWR --&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">init</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">creator</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">converter</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">init</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">&lt;!-- without allow, DWR isn't allowed to do anything --&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">create</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">creator</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">javascript</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">convert</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">converter</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">match</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">...</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">/&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">allow</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">&lt;!-- you may need to tell DWR about method signatures --&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;</span><span style="color: Green;">signatures</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; ... </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">&lt;/</span><span style="color: Green;">signatures</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">dwr</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p><strong>术语</strong><br />
一些术语是值得去理解的 &#8211; 参数会被 <em>转换（converted）</em>，但是远程的beans会被<em>创建（created）</em>。因此如果bean A有一个方法 A.blah(B)，那么需要一个A的<em>创建器（creator）</em> 和 B 的<em>转换器（converter）</em>。</p>
<p>(1) &lt;allow&gt;<br />
allow部分定义的是DWR可以创建和转换的类。</p>
<p>(2) Creators<br />
每个被调用的类都需要一个 &lt;create …&gt; 来定义。有几种类型的creator，最常用的是“new”关键字和Spring框架。更多的信息请参考 <a target="_blank" href="http://getahead.org/dwr/server/dwrxml/creators">Creator</a> 文档。</p>
<p>(3) Converters<br />
所有的参考都需要被转换。你有权限转换JDK所提供的多数类型，但是需要给DWR权限来转换你自己的代码。也就是说JavaBean参数需要一个 &lt;convert …&gt; 来定义。</p>
<p>默认情况下下述类型可以直接被转换：</p>
<ul>
<li>所有的基本类型，比如boolean、int、double等等</li>
<li>基本类型的对象类如Boolean、Integer等</li>
<li>java.lang.String</li>
<li>java.util.Date 和 SQL 表达式</li>
<li>上述类型的数组</li>
<li>上述类型的集合类 (Lists、Sets、Maps、Iterators等)</li>
<li>从DOM、XOM、JDOM和DOM4J创建的DOM对象（像Element和Document）</li>
</ul>
<p>具体怎样转换你自己的JavaBeans和其他参数请参考<a target="_blank" href="http://getahead.org/dwr/server/dwrxml/converters">Converter</a> 文档。</p>
<p>(4) &lt;init&gt;<br />
init部分是可选的，用来声明用来创建和转换beans的类。大多数情况下你用不到它。如果你想定义一个新的Creator [<a target="_blank" href="http://getahead.org/dwr-demo/javadoc/uk/ltd/getahead/dwr/Creator.html">JavaDoc</a>] 和 Converter [<a target="_blank" href="http://getahead.org/dwr-demo/javadoc/uk/ltd/getahead/dwr/Converter.html">JavaDoc</a>] 的话，需要在此声明。不过务必检查你所使用的DWR是否以及支持上述功能了。</p>
<p>init部分只是告诉DWR存在这个类，并且给出了这个类的一些基本的运行信息。但这些类并没有开始使用，这点有点类似Java中的import语句。大多数类在使用前必须被导入，但是声明导入并不意味着类开始被使用。每个 creator 和 converter 都有一个id属性，这样方便后面调用。</p>
<p>(5) &lt;signatures&gt;<br />
DWR 使用映射来确定哪些类型需要被转换。有的时候这些类型信息不明确，这时你可以在此写下方法的签名来指明其类型。更多细节请参考<a target="_blank" href="http://getahead.org/dwr/server/dwrxml/signatures">signatures</a> 部分。</p>
<p><strong>多个 dwr.xml 文件</strong></p>
<p>可以有一个以上的 dwr.xml 文件 (更多细节可参考 <a target="_blank" href="http://getahead.org/dwr/server/servlet">web.xml 文档</a> )。每个文件中的节点会被整合在一起。这个功能可以使DWR来加载基础配置文件来运行每个文件。</p>
<p>我们可以通过查看标准的配置文件对 dwr.xml 进行一个良好的认识。</p>
<ul>
<li><a target="_blank" href="http://getahead.org/dwr/server/dwrxml/converters">Converters</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/server/dwrxml/creators">Creators</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/server/dwrxml/signatures">Signatures</a></li>
</ul>
<p>英文出处:<br />
<a target="_blank" href="http://getahead.org/dwr/server/dwrxml">http://getahead.org/dwr/server/dwrxml</a><br />
DWR文档翻译文档列表：<br />
<a target="_blank" href="http://www.javatang.com/dwr-chinese-documents/">http://www.javatang.com/dwr-chinese-documents/</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/20/254879.html" rel="bookmark" class="crp_title">DWR文档之开始使用 DWR</a></li><li><a href="http://www.javatang.com/archives/2008/07/07/5648271.html" rel="bookmark" class="crp_title">如何使用DWR2.0的注解功能</a></li><li><a href="http://www.javatang.com/archives/2006/10/23/153481.html" rel="bookmark" class="crp_title">DWR文档之范例</a></li><li><a href="http://www.javatang.com/archives/2006/04/26/261321.html" rel="bookmark" class="crp_title">DWR文档之util.js</a></li><li><a href="http://www.javatang.com/archives/2006/10/19/301977.html" rel="bookmark" class="crp_title">DWR文档之DWR总览</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/03/11/3030123.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netbeans上的DWR插件</title>
		<link>http://www.javatang.com/archives/2007/03/08/3846115.html</link>
		<comments>http://www.javatang.com/archives/2007/03/08/3846115.html#comments</comments>
		<pubDate>Thu, 08 Mar 2007 13:38:46 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[一个名为Chuck的人发布了Netbeans上的DWR插件，主要有以下功能： 1. 将一个JavaEE项目添加为支持DWR； 2. 多视图下编辑dwr.xml文件，目前提供了三种视图：创建、转换和XML文本； 3. 从NetBeans的Palette面板上直接拖拽DWR对象到JSP页面中。 具体可点击这里 如果有一个这样的Eclipse的插件就太好了，抽时间做一个出来，呵呵… Related Posts:谈谈网络存储服务迟到的报道－ SQLServer2005 JDBC v1.1正式版发布程序员自创的一首歌 &#8211; “Java EE 5″非常棒的JS的Eclipse插件 &#8211; JSEclipseGoogle也玩“变脸”]]></description>
			<content:encoded><![CDATA[<p class="storycontent">一个名为<a target="_blank" href="http://blogs.sun.com/chuk/">Chuck</a>的人发布了Netbeans上的DWR插件，主要有以下功能：</p>
<p>1. 将一个JavaEE项目添加为支持DWR；<br />
2. 多视图下编辑dwr.xml文件，目前提供了三种视图：创建、转换和XML文本；<br />
3. 从NetBeans的Palette面板上直接拖拽DWR对象到JSP页面中。</p>
<p><img src="http://www.javatang.com/wp-content/add_to_dwr.png" alt="DWR NetBeans plugin" /></p>
<p>具体可点击<a target="_blank" href="http://blogs.sun.com/chuk/date/20070306">这里</a></p>
<p>如果有一个这样的Eclipse的插件就太好了，抽时间做一个出来，呵呵…</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/11/28/1236247.html" rel="bookmark" class="crp_title">谈谈网络存储服务</a></li><li><a href="http://www.javatang.com/archives/2006/10/17/495674.html" rel="bookmark" class="crp_title">迟到的报道－ SQLServer2005 JDBC v1.1正式版发布</a></li><li><a href="http://www.javatang.com/archives/2006/09/18/544867.html" rel="bookmark" class="crp_title">程序员自创的一首歌 &#8211; “Java EE 5″</a></li><li><a href="http://www.javatang.com/archives/2006/03/16/11399.html" rel="bookmark" class="crp_title">非常棒的JS的Eclipse插件 &#8211; JSEclipse</a></li><li><a href="http://www.javatang.com/archives/2007/03/22/0105147.html" rel="bookmark" class="crp_title">Google也玩“变脸”</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/03/08/3846115.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DWR官方更换新域名</title>
		<link>http://www.javatang.com/archives/2007/03/06/0048111.html</link>
		<comments>http://www.javatang.com/archives/2007/03/06/0048111.html#comments</comments>
		<pubDate>Tue, 06 Mar 2007 14:00:48 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[今天在Joe Walker的博客看到DWR的官方网站的域名已经由原来的getahead.ltd.uk更改为现在的getahead.org了，所以DWR的地址更新为 http://getahead.org/dwr。 Joe在他的博客中写道更换的原因是因为Yahoo一直认为.ltd.uk不够正式，至少不如.co.uk正式，想不到英国的二级域名更多，比cn的还黑啊，呵呵。 这样以来本站中的DWR文档中指向原文档的链接也需要更新，尽管现在老的域名也可以访问。 Related Posts:DWR文档之范例DWR 2.0正式版发布DWR文档之dwr.xmlDWR文档之util.jsGoogle发布“网站导航”]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.javatang.com/wp-content/dwr-logo.png" alt="dwr-logo.png" /><br />
今天在<a target="_blank" href="http://getahead.org/blog/joe/">Joe Walker</a>的博客看到DWR的官方网站的域名已经由原来的getahead.ltd.uk更改为现在的getahead.org了，所以DWR的地址更新为 http://getahead.org/dwr。</p>
<p><a target="_blank" href="http://getahead.org/blog/joe/2007/03/04/dwr_website_update.html">Joe在他的博客</a>中写道更换的原因是因为Yahoo一直认为.ltd.uk不够正式，至少不如.co.uk正式，想不到英国的二级域名更多，比cn的还黑啊，呵呵。</p>
<p>这样以来本站中的DWR文档中指向原文档的链接也需要更新，尽管现在老的域名也可以访问。</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/23/153481.html" rel="bookmark" class="crp_title">DWR文档之范例</a></li><li><a href="http://www.javatang.com/archives/2007/05/09/1931162.html" rel="bookmark" class="crp_title">DWR 2.0正式版发布</a></li><li><a href="http://www.javatang.com/archives/2007/03/11/3030123.html" rel="bookmark" class="crp_title">DWR文档之dwr.xml</a></li><li><a href="http://www.javatang.com/archives/2006/04/26/261321.html" rel="bookmark" class="crp_title">DWR文档之util.js</a></li><li><a href="http://www.javatang.com/archives/2007/03/12/5833125.html" rel="bookmark" class="crp_title">Google发布“网站导航”</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/03/06/0048111.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DWR文档之 技巧和要点</title>
		<link>http://www.javatang.com/archives/2006/11/21/055584.html</link>
		<comments>http://www.javatang.com/archives/2006/11/21/055584.html#comments</comments>
		<pubDate>Tue, 21 Nov 2006 01:05:55 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文出处: http://www.javatang.com/archives/2006/11/21/055584.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 使用DWR的技巧和要点 这里列出了在使用DWR时候的一些技巧和要点，希望对你有所帮助。请对你有过帮助的地方添加评论… 创建一个 “Google Suggest” 组件 我一直不主张自己写 suggest 组件。虽然实现一下基本的功能比较简单，但是完全实现快捷键（keyboard navigation）功能就非常困难了。下面是一些包含 suggest 组件的库： Script.aculo.us 包含了一个 Autocompleter.Local 函数，该函数可以与DWR融为一体。使用’Local’版本并远程协同DWR工作比使用’Remote’ 版本容易的多，因为后者还需要知道服务端怎样工作。更多有所帮助的信息请参考这封在 dwr-users 邮件列表的信 ，或者Rubens的这篇博文。 来自 Rimu Hosting 的 Alternatively Peter 实现了一个独立的并且dwr兼容的版本，这里是他发表的文章。 增强的文件上传 Pierre Losson 书写了一种将 DWR 和 Commons-FileUpload 结合在一起的方法，很值得一读。完整的源代码和 war 演示程序都可以下载。 改进 loading message 存在于 DWR 1.0 的 useLoadingMessage() 函数有一些缺陷（比如你不能自定义显示的文字信息，还有在调用它的时候必须非常小心）。你可以使用剪切和粘贴一个该函数的新版本来修复这些缺陷（译注：这里作者的意思是你可以在DWR所提供的 useLoadingMessage() 函数的基础上进行修改）。 [...]]]></description>
			<content:encoded><![CDATA[<p class="storycontent">原文出处: http://www.javatang.com/archives/2006/11/21/055584.html<br />
翻译: Jet Mah<br />
声明: 请维持文章的完整性任意转载</p>
<p><strong>使用DWR的技巧和要点</strong></p>
<p>这里列出了在使用DWR时候的一些技巧和要点，希望对你有所帮助。请对你有过帮助的地方添加评论…</p>
<p><strong>创建一个 “Google Suggest” 组件</strong><br />
我一直不主张自己写 suggest 组件。虽然实现一下基本的功能比较简单，但是完全实现快捷键（keyboard navigation）功能就非常困难了。下面是一些包含 suggest 组件的库：</p>
<p><a target="_blank" href="http://script.aculo.us/">Script.aculo.us</a> 包含了一个 <a target="_blank" href="http://wiki.script.aculo.us/scriptaculous/show/Autocompleter.Local">Autocompleter.Local</a> 函数，该函数可以与DWR融为一体。使用’Local’版本并远程协同DWR工作比使用’Remote’ 版本容易的多，因为后者还需要知道服务端怎样工作。更多有所帮助的信息请参考<a target="_blank" href="https://dwr.dev.java.net/servlets/ReadMsg?list=users&amp;msgNo=2629">这封在 dwr-users 邮件列表的信</a> ，或者<a targe="_blank" href="http://rubens.wordpress.com/2006/02/09/ajax-autocomplete-with-dwr/">Rubens的这篇博文</a>。</p>
<p>来自 Rimu Hosting 的 Alternatively Peter 实现了一个独立的并且dwr兼容的版本，<a target="_blank" href="http://bliki.rimuhosting.com/space/knowledgebase/linux/misc/ajax+autocomplete">这里是他发表的文章</a>。</p>
<p><strong>增强的文件上传</strong><br />
Pierre Losson <a target="_blank" href="http://www.telio.be/blog/2006/01/06/ajax-upload-progress-monitor-for-commons-fileupload-example/">书写了一种将 DWR 和 Commons-FileUpload 结合在一起的方法</a>，很值得一读。完整的源代码和 war 演示程序都可以下载。</p>
<p><strong>改进 loading message</strong><br />
存在于 DWR 1.0 的 useLoadingMessage() 函数有一些缺陷（比如你不能自定义显示的文字信息，还有在调用它的时候必须非常小心）。你可以使用剪切和粘贴一个该函数的新版本来修复这些缺陷（译注：这里作者的意思是你可以在DWR所提供的 useLoadingMessage() 函数的基础上进行修改）。<a target="_blank" href="http://getahead.ltd.uk/dwr/browser/util/useloadingmessage"> useLoadingMessage() 文档</a> 提供了更详细的资料。</p>
<p><strong>使用调试/测试页面</strong><br />
当程序出现问题的时候，另外一个非常有用的助手就是调试/测试页面（地址是 http://localhost:8080/[YOUR-WEBAPP]/dwr ）。这个页面的一些基本用法已经包含在了 <a href="http://www.javatang.com/archives/2006/10/20/254879.html">开始使用 DWR</a> 这篇文章之中，但是记住程序何时中断的显得更有意义，这是因为通常这些页面提供了将要出现错误的信息。</p>
<p><strong>访问 HttpServletRequest</strong><br />
你可以 <a target="_blank" href="http://getahead.ltd.uk/dwr/server/javaapi">访问 HttpServletRequest</a> 并映射对象。</p>
<p><strong>向回调函数传递参数</strong><br />
通常我们需要把额外的信息传递给回调函数，但是所有的回调函数只有一个参数（远程方法中的返回值），它应该更灵活。 <a target="_blank" href="http://getahead.ltd.uk/dwr/browser/extradata">这里专门有一整页专注于这个问题，可以帮助你解决这个问题</a>。</p>
<p><strong>调整服务器性能</strong><br />
<strong>CPU 瓶颈：</strong>一些 <a target="_blank" href="http://getahead.ltd.uk/blog/joe/2005/06/29/1120062091858.html">公正认真的性能大师们</a> 认为 DWR 基本没有什么性能方面的问题。DWR所使用的时间跟服务器和网络比起来微不足道。如果你真的想提升性能的话，可以讲日志的级别设置位ERROR或FATAL，当然最主要的还要取决于你的代码。</p>
<p><strong>网络瓶颈：</strong> DWR不能管理浏览器的缓存，所以浏览器会不断地重复读取 DWR javascript 脚本。有一个比较简单的解决方法，将这些 javascript 文件复制到 web-app 目录，这样服务器可以更好的来处理它们。你还可以将所有的 javascript 文件合并到一个文件中，然后使用 <a target="_blank" href="http://dojotoolkit.org/docs/compressor_system.html">DOJO compressor</a> 压缩来减小文件的体积。</p>
<p>我们将发布一个补丁使得 DWR 在 web 程序启动的时候可以使用时间来标记 Javascript 文件，但是这些并不是最好的解决方法，因为上面所说的方法非常简单并且可以很大程度上压缩合并 Javascript 文件。</p>
<p>英文出处:<br />
<a target="_blank" href="http://getahead.org/dwr/hints">http://getahead.org/dwr/hints</a><br />
DWR文档翻译文档列表：<br />
<a target="_blank" href="http://www.javatang.com/dwr-chinese-documents/">http://www.javatang.com/dwr-chinese-documents/</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/20/254879.html" rel="bookmark" class="crp_title">DWR文档之开始使用 DWR</a></li><li><a href="http://www.javatang.com/archives/2006/10/19/301977.html" rel="bookmark" class="crp_title">DWR文档之DWR总览</a></li><li><a href="http://www.javatang.com/archives/2006/10/23/153481.html" rel="bookmark" class="crp_title">DWR文档之范例</a></li><li><a href="http://www.javatang.com/archives/2006/10/24/424782.html" rel="bookmark" class="crp_title">DWR文档之 网络上的资料</a></li><li><a href="http://www.javatang.com/archives/2007/03/11/3030123.html" rel="bookmark" class="crp_title">DWR文档之dwr.xml</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/11/21/055584.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DWR文档之 网络上的资料</title>
		<link>http://www.javatang.com/archives/2006/10/24/424782.html</link>
		<comments>http://www.javatang.com/archives/2006/10/24/424782.html#comments</comments>
		<pubDate>Tue, 24 Oct 2006 03:42:47 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文出处: http://www.javatang.com/archives/2006/10/24/424782.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 网络上关于 DWR 的教程和文章 DWR 的各种教程开始出现在网络上。欢迎你对除此之外的其他教程或者任何包含下面文章的书刊进行评论。 连接 DWR 和其他技术 有很多是关于将 DWR 应用到其他技术的文章： Mats Henricson 写的文章是关于 将DWR 应用到 Appfuse Jorge Martín Cuervo 记录了他使用 DWR 的亲身经历 ，还有 JMeter. Helge Tesgaard 基于 DWR 使用 Commons FileUpload 和 Acegi 创建了一个 Ajax 上传进度条. Sujit Pal 写的使用 DWR 和 Velocity。 Pinaki Poddar 为 BEA dev2dev [...]]]></description>
			<content:encoded><![CDATA[<p class="storycontent">原文出处: http://www.javatang.com/archives/2006/10/24/424782.html<br />
翻译: Jet Mah<br />
声明: 请维持文章的完整性任意转载</p>
<p><strong>网络上关于 DWR 的教程和文章</strong></p>
<p>DWR 的各种教程开始出现在网络上。欢迎你对除此之外的其他教程或者任何包含下面文章的书刊进行评论。</p>
<p><strong>连接 DWR 和其他技术</strong><br />
有很多是关于将 DWR 应用到其他技术的文章：</p>
<li>Mats Henricson 写的文章是关于 <a target="_blank" href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuseAjaxWithDWR">将DWR 应用到 Appfuse</a></li>
<li>Jorge Martín Cuervo <a target="_blank" href="http://jorge.martincuervo.com/2006/10/15/jmeter-and-dwr/">记录了他使用 DWR 的亲身经历</a> ，还有 <a target="_blank" href="http://jakarta.apache.org/jmeter/">JMeter</a>.</li>
<li>Helge Tesgaard 基于 DWR 使用 Commons FileUpload 和 Acegi 创建了一个 <a target="_blank" href="http://raibledesigns.com/wiki/Wiki.jsp?page=CreateAnAJAXBasedFileuploadProgressbarDialog">Ajax 上传进度条</a>.</li>
<li>Sujit Pal 写的使用 <a target="_blank" href="http://sujitpal.blogspot.com/2006/07/ajax-component-with-dwr-and-velocity.html">DWR 和 Velocity</a>。</li>
<li>Pinaki Poddar 为 BEA dev2dev 写了两篇关于 DWR 和 EJB3 的文章：<a target="_blank" href="http://dev2dev.bea.com/blog/pinaki.poddar/archive/2006/05/from_ejb_30_to.html">第一部分</a> 和 <a target="_blank" href="http://dev2dev.bea.com/blog/pinaki.poddar/archive/2006/05/from_ejb_30_to_2.html">第二部分</a>。</li>
<li><a target="_blank" href="http://confluence.atlassian.com/display/DISC/Running+DWR+inside+a+Plugin">DWR 和 Confluence</a> ，作者：<a target="_blank" href="http://confluence.atlassian.com/display/~dhardiker@adaptavist.com">Dan Hardiker</a>.<strong>DWR 教程</strong><br />
这一部分是一组介绍 DWR 的文章，大部分都是从 1.x 版本开始的。</p>
<p>Sun: <a target="_blank" href="http://www.javapassion.com/handsonlabs/ajaxdwrintro/">Hands-On DWR Labs</a><br />
<img src="http://www.javatang.com/_dwrdata/images/sangshin.jpg" /><br />
来自于 Sun 的 Sang Shin from Sun 创建了一组 Hands on Labs 用来讨论各种 Ajax 技术。这里是 <a target="_blank" href="http://www.javapassion.com/handsonlabs/ajaxdwrintro/">DWR 部分</a>。</p>
<p>摘录：此文档从头教给你怎样快速使用 DWR 开发基于 Ajax 的 Web 程序。</p>
<p><strong>Java.net: <a target="_blank" href="http://today.java.net/pub/a/today/2005/08/25/dwr.html">DWR 聊天室演示程序</a></strong><br />
<img src="http://www.javatang.com/_dwrdata/images/or-ajax.gif" /><br />
由 DWR 的开发者 &#8211; <a target="_blank" href="http://getahead.ltd.uk/joe">Joe Walker</a> 所创建。</p>
<p>摘录： 文章演示了使用 DWR 创建一个多用户的网络聊天室。它说明将客户端浏览器中的 JavaScript 和服务端的 Java 连在一起是如果的容易。它的目标是在客户端和服务端都使用大概 100 行代码来创建这个完整的系统……</p>
<p><strong>IBM DeveloperWorks: <a target="_blank" href="http://www-128.ibm.com/developerworks/java/library/j-ajax3/">结合 Direct Web Remoting 使用 Ajax</a></strong><br />
<img src="http://www.javatang.com/_dwrdata/images/ibm-dwr.gif" /><br />
再也没有比这个更简单的连载文章了，作者是 <a target="_blank" href="http://www-128.ibm.com/developerworks/java/library/j-ajax3/#author">Phil McCarthy</a><br />
（译注：中文版本的地址为：<a target="_blank" href="http://www-128.ibm.com/developerworks/cn/java/j-ajax3/">http://www-128.ibm.com/developerworks/cn/java/j-ajax3/</a>）</p>
<p>摘录： Philip McCarthy 介绍了如何使用Direct Web Remoting（DWR）直接把 JavaBean 的方法公开给 JavaScript 代码并自动进行 Ajax 的繁重工作。… 虽然 DWR 不是 Java 平台中唯一的 Ajax-RPC 工具，但是它是其中一个特别成熟的工具，并且提供了一大堆有用的函数。</p>
<p><strong>BEA dev2dev: <a target="_blank" href="http://dev2dev.bea.com/pub/a/2005/08/ajax_introduction.html">Ajax简介</a></strong><br />
<img src="http://www.javatang.com/_dwrdata/images/bea-dev2dev.gif" /></p>
<p>关于 Ajax 和 DWR 的简介，作者 <a target="_blank" href="http://tearesolutions.com/">David Teare</a><br />
（译注：中文版本的地址为：<a target="_blank" href="http://dev2dev.bea.com.cn/techdoc/2005110103.html">http://dev2dev.bea.com.cn/techdoc/2005110103.html</a>）</p>
<p>摘录：DWR 真正的简洁在于，一旦你设置了公开于客户端的服务端代码，它将映射到被网页调用的 JavaScript 对象，这些对象也可以直接访问服务端。网页可以直接使用被映射的 JavaScript 对象，就好像直接使用服务端的代码一样；DWR 无缝地解决了实现这些功能的细节……</p>
<p><strong>JavaWorld: <a target="_blank" href="http://www.javaworld.com/javaworld/jw-06-2005/jw-0620-dwr.html">DWR 使开发 Ajax 如此简单</a></strong><br />
一篇介绍 DWR 的文章，作者是 Cloves Carneiro Jr.</p>
<p>摘录：文章介绍了使用开源项目 DWR（Direct Web Romoting）实现 AJAX（Asynchronous JavaScript and XML）来改善 Web 应用程序的优势。作者逐步操作来演示了 DWR 怎样简单而快速的实现 AJAX。（1,600 字；2005年6月20日）</p>
<p>英文出处:<br />
<a target="_blank" href="http://getahead.org/dwr/elsewhere">http://getahead.org/dwr/elsewhere</a><br />
DWR文档翻译文档列表：<br />
<a target="_blank" href="http://www.javatang.com/dwr-chinese-documents/">http://www.javatang.com/dwr-chinese-documents/</a></li>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/19/301977.html" rel="bookmark" class="crp_title">DWR文档之DWR总览</a></li><li><a href="http://www.javatang.com/archives/2006/11/21/055584.html" rel="bookmark" class="crp_title">DWR文档之 技巧和要点</a></li><li><a href="http://www.javatang.com/archives/2006/10/20/230978.html" rel="bookmark" class="crp_title">最流行的 Ajax/Java 框架</a></li><li><a href="http://www.javatang.com/archives/2006/10/23/153481.html" rel="bookmark" class="crp_title">DWR文档之范例</a></li><li><a href="http://www.javatang.com/archives/2006/10/20/254879.html" rel="bookmark" class="crp_title">DWR文档之开始使用 DWR</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/10/24/424782.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DWR文档之范例</title>
		<link>http://www.javatang.com/archives/2006/10/23/153481.html</link>
		<comments>http://www.javatang.com/archives/2006/10/23/153481.html#comments</comments>
		<pubDate>Mon, 23 Oct 2006 14:15:34 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文出处: http://www.javatang.com/archives/2006/10/23/153481.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 范例 官方站点上有 7 个指南或范例，他们主要用来理解 DWR 怎样工作而不是延伸 Ajax。 在尝试自己创建这些例子之前，最好先理解 开始使用 DWR 部分。 站点实例 动态更新文本 动态表单编辑 表格编辑 动态地址簿 动态下拉列表 动态验证 简易聊天室 操作 XML 例子源代码英文出处: http://getahead.org/dwr/examples DWR文档翻译文档列表： http://www.javatang.com/dwr-chinese-documents/ Related Posts:DWR文档之util.jsDWR文档之DWR总览DWR文档之dwr.xml$()DWR文档之开始使用 DWR]]></description>
			<content:encoded><![CDATA[<p class="storycontent">原文出处: http://www.javatang.com/archives/2006/10/23/153481.html<br />
翻译: Jet Mah<br />
声明: 请维持文章的完整性任意转载</p>
<p><strong>范例</strong></p>
<p>官方站点上有 7 个指南或范例，他们主要用来理解 DWR 怎样工作而不是延伸 Ajax。</p>
<p>在尝试自己创建这些例子之前，最好先理解 <a href="http://www.javatang.com/archives/2006/10/20/254879.html">开始使用 DWR</a> 部分。</p>
<li><a target="_blank" href="http://getahead.org/dwr/examples/live">站点实例</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/text">动态更新文本</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/form">动态表单编辑</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/table">表格编辑</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/address">动态地址簿</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/lists">动态下拉列表</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/validation">动态验证</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/chat">简易聊天室</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/xml">操作 XML</a></li>
<li><a target="_blank" href="http://getahead.org/dwr/examples/source">例子源代码</a>英文出处:<br />
<a target="_blank" href="http://getahead.org/dwr/examples">http://getahead.org/dwr/examples</a><br />
DWR文档翻译文档列表：<br />
<a target="_blank" href="http://www.javatang.com/dwr-chinese-documents/">http://www.javatang.com/dwr-chinese-documents/</a></li>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/04/26/261321.html" rel="bookmark" class="crp_title">DWR文档之util.js</a></li><li><a href="http://www.javatang.com/archives/2006/10/19/301977.html" rel="bookmark" class="crp_title">DWR文档之DWR总览</a></li><li><a href="http://www.javatang.com/archives/2007/03/11/3030123.html" rel="bookmark" class="crp_title">DWR文档之dwr.xml</a></li><li><a href="http://www.javatang.com/archives/2006/06/13/112544.html" rel="bookmark" class="crp_title">$()</a></li><li><a href="http://www.javatang.com/archives/2006/10/20/254879.html" rel="bookmark" class="crp_title">DWR文档之开始使用 DWR</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/10/23/153481.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最流行的 Ajax/Java 框架</title>
		<link>http://www.javatang.com/archives/2006/10/20/230978.html</link>
		<comments>http://www.javatang.com/archives/2006/10/20/230978.html#comments</comments>
		<pubDate>Fri, 20 Oct 2006 01:23:09 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[最流行的 Ajax/Java 框架 Filed under: DWR — Jet @ 9:23 am Ajaxian.com 上评出的2006最流行的 Ajax/Java 框架 Related Posts:DWR文档之DWR总览DWR文档之 网络上的资料$()DWR文档之 技巧和要点DWR文档之范例]]></description>
			<content:encoded><![CDATA[<h3 id="post-78" class="storytitle"><a rel="bookmark" href="http://www.javatang.com/archives/2006/10/20/230978.html">最流行的 Ajax/Java 框架</a></h3>
<p class="meta">Filed under: <a rel="category tag" href="http://www.javatang.com/archives/category/ria/dwr/" title="View all posts in DWR">DWR</a> — Jet @ 9:23 am</p>
<p class="storycontent">Ajaxian.com 上评出的2006最流行的 Ajax/Java 框架</p>
<p><img src="http://www.javatang.com/_dwrdata/images/survey2006.png" /></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2006/10/19/301977.html" rel="bookmark" class="crp_title">DWR文档之DWR总览</a></li><li><a href="http://www.javatang.com/archives/2006/10/24/424782.html" rel="bookmark" class="crp_title">DWR文档之 网络上的资料</a></li><li><a href="http://www.javatang.com/archives/2006/06/13/112544.html" rel="bookmark" class="crp_title">$()</a></li><li><a href="http://www.javatang.com/archives/2006/11/21/055584.html" rel="bookmark" class="crp_title">DWR文档之 技巧和要点</a></li><li><a href="http://www.javatang.com/archives/2006/10/23/153481.html" rel="bookmark" class="crp_title">DWR文档之范例</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2006/10/20/230978.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: www.javatang.com @ 2010-09-10 10:47:10 -->