<?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; RIA</title>
	<atom:link href="http://www.javatang.com/archives/category/rich-internet-applications/feed" rel="self" type="application/rss+xml" />
	<link>http://www.javatang.com</link>
	<description>Java Tang</description>
	<lastBuildDate>Thu, 08 Dec 2011 08:29:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>IE6下使png透明的完美解决方式</title>
		<link>http://www.javatang.com/archives/2010/07/08/4615417.html</link>
		<comments>http://www.javatang.com/archives/2010/07/08/4615417.html#comments</comments>
		<pubDate>Thu, 08 Jul 2010 11:46:15 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Web&Server]]></category>

		<guid isPermaLink="false">http://www.javatang.com/?p=417</guid>
		<description><![CDATA[众所周知，在IE6下面无法使用png透明的效果，虽然IE6的市场份额逐渐下滑，但是在国内依然保持最旺盛的占有率，这一点无法进行忽视。下午的时候Google了一下目前的解决方案，发现IE PNG Fix 2.0 Alpha 4虽然使用非常比较方便而且可以打到预期的效果，但是在加载页面的时候非常的缓慢，这一点是无法容忍的。还有使用滤镜的，但是效果一般，而且没有通用性。 最后在蓝色理想的一个帖子里面有网友提到使用Unit PNG Fix，结果用下来发现效果和速度都非常令人满意，调用方法我简单的说一下吧： 首先在http://labs.unitinteractive.com/unitpngfix.php页面的下面下载unitpngfix.zip文件。 接下来将压缩包里面的两个文件：unitpngfix.js和clear.gif拷贝到站点的某个位置，假设将unitpngfix.js拷贝到scripts目录，clear.gif放到images目录，这个时候需要特别注意的是，必须修改unitpngfix.js文件中clear变量的值，也就是clear.gif相对于unitpngfix.js文件的路径，上面的情况就要修改成： var clear=&#34;../images/clear.gif&#34;; //path to clear.gif 最后在页面中进行调用unitpngfix.js文件就可以了。 &#60;!--[if lt IE 7]&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;scripts/unitpngfix.js&#34;&#62;&#60;/script&#62; &#60;![endif]--&#62; 到这里其实已经看到效果了，不过默认情况下unitpngfix会对页面中所有的元素进行渲染处理，这样的话未免有些影响页面加载的效率，有一种方法就是可以将所要渲染的元素后面使用名为unitPng的style进行限定。 延伸阅读：IE6下使png透明的完美解决方式（续） OK，Enjoy It！ 参考资料： 老问题重提：IE6下png背景透明 ie6处理png透明图片问题 ie6 png透明解决方法简单高效 Related Posts:IE6下使png透明的完美解决方式（续）Javascript的国际化方案JSEclipse现在是Adodb的项目了使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法Javascript怎样设置文本框的readonly属性？]]></description>
			<content:encoded><![CDATA[<p>众所周知，在IE6下面无法使用png透明的效果，虽然IE6的市场份额逐渐下滑，但是在国内依然保持最旺盛的占有率，这一点无法进行忽视。下午的时候Google了一下目前的解决方案，发现<a href="http://www.twinhelix.com/css/iepngfix/" target="_blank">IE PNG Fix 2.0 Alpha 4</a>虽然使用非常比较方便而且可以打到预期的效果，但是在加载页面的时候非常的缓慢，这一点是无法容忍的。还有使用滤镜的，但是效果一般，而且没有通用性。</p>
<p>最后在<a href="http://bbs.blueidea.com/viewthread.php?tid=2892826&#038;page=1#pid4266799" target="_blank">蓝色理想的一个帖子里面</a>有网友提到使用<a href="http://labs.unitinteractive.com/unitpngfix.php" target="_blank">Unit PNG Fix</a>，结果用下来发现效果和速度都非常令人满意，调用方法我简单的说一下吧：</p>
<p>首先在<a href="http://labs.unitinteractive.com/unitpngfix.php" target="_blank">http://labs.unitinteractive.com/unitpngfix.php</a>页面的下面下载<a href="http://labs.unitinteractive.com/downloads/unitpngfix.zip" target="_blank">unitpngfix.zip文件</a>。</p>
<p>接下来将压缩包里面的两个文件：unitpngfix.js和clear.gif拷贝到站点的某个位置，假设将unitpngfix.js拷贝到scripts目录，clear.gif放到images目录，这个时候需要特别注意的是，<strong>必须修改unitpngfix.js文件中clear变量的值，也就是clear.gif相对于unitpngfix.js文件的路径</strong>，上面的情况就要修改成：</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;">clear</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">../images/clear.gif</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//path to clear.gif</span></li></ol></div>
<p>最后在页面中进行调用unitpngfix.js文件就可以了。</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">&lt;!--[if lt IE 7]&gt; </li>
<li>&lt;script type=&quot;text/javascript&quot; src=&quot;scripts/unitpngfix.js&quot;&gt;&lt;/script&gt; </li>
<li>&lt;![endif]--&gt;</li></ol></div>
<p>到这里其实已经看到效果了，不过默认情况下unitpngfix会对页面中所有的元素进行渲染处理，这样的话未免有些影响页面加载的效率，有一种方法就是可以将所要渲染的元素后面使用名为unitPng的style进行限定。</p>
<p>延伸阅读：<a href="http://www.javatang.com/archives/2010/07/19/0824428.html" target="_blank">IE6下使png透明的完美解决方式（续）</a></p>
<p>OK，Enjoy It！</p>
<p>参考资料：<br />
<a href="http://bbs.blueidea.com/thread-2892826-1-1.html" target="_blank">老问题重提：IE6下png背景透明</a><br />
<a href="http://ninggy.javaeye.com/blog/559643" target="_blank">ie6处理png透明图片问题</a><br />
<a href="http://buliangniu.javaeye.com/blog/556735" target="_blank">ie6 png透明解决方法简单高效</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2010/07/19/1736428.html" rel="bookmark" class="crp_title">IE6下使png透明的完美解决方式（续）</a></li><li><a href="http://www.javatang.com/archives/2008/04/20/5034268.html" rel="bookmark" class="crp_title">Javascript的国际化方案</a></li><li><a href="http://www.javatang.com/archives/2007/01/30/303293.html" rel="bookmark" class="crp_title">JSEclipse现在是Adodb的项目了</a></li><li><a href="http://www.javatang.com/archives/2008/07/10/1954272.html" rel="bookmark" class="crp_title">使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法</a></li><li><a href="http://www.javatang.com/archives/2007/10/06/5104204.html" rel="bookmark" class="crp_title">Javascript怎样设置文本框的readonly属性？</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2010/07/08/4615417.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法</title>
		<link>http://www.javatang.com/archives/2008/07/10/1954272.html</link>
		<comments>http://www.javatang.com/archives/2008/07/10/1954272.html#comments</comments>
		<pubDate>Thu, 10 Jul 2008 08:19:54 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[DynamicLanguage]]></category>
		<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false">http://www.javatang.com/archives/2008/07/10/1954272.html</guid>
		<description><![CDATA[DWR提供了两个js文件：engine.js和util.js，通常来说我们都是动态来引用这两个js文件，在官方的例子中也是这样做的（其中dwr是mapping时的路径）： &#60;script type=&#34;text/javascript&#34; src=&#34;/dwr/engine.js&#34;&#62;&#60;/script&#62; &#60;script&#160;type=&#34;text/javascript&#34; src=&#34;/dwr/util.js&#34;&#62;&#60;/script&#62; 但是根据页面优化原则，我们如果将所有的js文件进行压缩整合在一起的话将会极大的减少页面加载的时间。但是当我们将上面的两个js文件下载下来然后跟其他js文件整合压缩之后，访问页面的时候会出现一个“例外被抛出且未被接住”的脚本错误。 用百度搜索了一下基本只搜到一篇名为《dwr应用时请注意（初学者）》的文章，文章中建议使用他在附件中所提供的dwr.jar包。但是作者所提供的dwr版本有些低，另外作者并没有在文章中说明造成问题的原因。 后来将异常转换为英文 Exception thrown and not caught 在google中搜索了一下，得知是因为没有在页面中动态引用engine.js，因为dwr在运行的时候需要动态控制这个文件。 但是这样的话就达不到压缩engine.js文件的目的了，我无意中在官方看到一篇专门讲解怎样缓存engine.js文件的文章，下面我就将作者建议的做法说明如下： 首先使用动态加载engine.js文件，然后将该文件下载下来。打开下载下来的engine.js文件，然后将第226到242行之间的文字剪切下来，然后将dwr.jar包中的org/directwebremoting/engine.js文件内容删除，然后粘贴到该文件中并替换dwr.jar包中原来的engine.js文件，内容大致如下： dwr.engine._origScriptSessionId = &#34;${scriptSessionId}&#34;; dwr.engine._sessionCookieName = &#34;${sessionCookieName}&#34;; dwr.engine._allowGetForSafariButMakeForgeryEasier = &#34;${allowGetForSafariButMakeForgeryEasier}&#34;; dwr.engine._scriptTagProtection = &#34;${scriptTagProtection}&#34;; dwr.engine._defaultPath = &#34;${defaultPath}&#34;; dwr.engine._pollWithXhr = &#34;${pollWithXhr}&#34;; 这样就可以将下载下来的engin.js文件同其他文件进行压缩合并了，但是在页面中还必须动态引用engine.js： &#60;script type=&#34;text/javascript&#34; src=&#34;/dwr/engine.js&#34;&#62;&#60;/script&#62; 这样一来即压缩了engine.js文件中静态的部分，又使用了engine.js中的动态部分，并且最重要的是“例外被抛出且未被接住”异常也不会再出现了。 参考资料： Caching engine.js Related Posts:Javascript的国际化方案IE6下使png透明的完美解决方式（续）Javascript怎样设置文本框的readonly属性？优秀的JavaScript类库 &#8211; RicoApache中显示PHP源代码的原因]]></description>
			<content:encoded><![CDATA[<p>DWR提供了两个js文件：engine.js和util.js，通常来说我们都是动态来引用这两个js文件，在官方的例子中也是这样做的（其中dwr是mapping时的路径）：</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;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/dwr/engine.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">script</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;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/dwr/util.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>但是根据页面优化原则，我们如果将所有的<a href="http://www.javatang.com/archives/2008/04/13/0212267.html" target="_blank">js文件进行压缩整合在一起</a>的话将会极大的减少页面加载的时间。但是当我们将上面的两个js文件下载下来然后跟其他js文件整合压缩之后，访问页面的时候会出现一个“例外被抛出且未被接住”的脚本错误。</p>
<p>用百度搜索了一下基本只搜到一篇名为<a href="http://yahaitt.javaeye.com/blog/147795" target="_blank">《dwr应用时请注意（初学者）》</a>的文章，文章中建议使用他在附件中所提供的dwr.jar包。但是作者所提供的dwr版本有些低，另外作者并没有在文章中说明造成问题的原因。</p>
<p>后来将异常转换为英文 Exception thrown and not caught 在google中搜索了一下，得知是因为没有在页面中动态引用engine.js，因为dwr在运行的时候需要动态控制这个文件。</p>
<p>但是这样的话就达不到压缩engine.js文件的目的了，我无意中在官方看到一篇专门讲解<a href="http://directwebremoting.org/dwr/browser/engine/static" target="_blank">怎样缓存engine.js文件的文章</a>，下面我就将作者建议的做法说明如下：</p>
<p>首先使用动态加载engine.js文件，然后将该文件下载下来。打开下载下来的engine.js文件，然后将第226到242行之间的文字剪切下来，然后将dwr.jar包中的org/directwebremoting/engine.js文件内容删除，然后粘贴到该文件中并替换dwr.jar包中原来的engine.js文件，内容大致如下：</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: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_origScriptSessionId</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${scriptSessionId}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_sessionCookieName</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${sessionCookieName}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_allowGetForSafariButMakeForgeryEasier</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${allowGetForSafariButMakeForgeryEasier}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_scriptTagProtection</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${scriptTagProtection}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_defaultPath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${defaultPath}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">dwr</span><span style="color: Gray;">.</span><span style="color: Blue;">engine</span><span style="color: Gray;">.</span><span style="color: Blue;">_pollWithXhr</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">${pollWithXhr}</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li></ol></div>
<p>这样就可以将下载下来的engin.js文件同其他文件进行压缩合并了，但是在页面中还必须动态引用engine.js：</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;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/dwr/engine.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>这样一来即压缩了engine.js文件中静态的部分，又使用了engine.js中的动态部分，并且最重要的是“例外被抛出且未被接住”异常也不会再出现了。</p>
<p>参考资料：<br />
<a href="http://directwebremoting.org/dwr/browser/engine/static" target="_blank">Caching engine.js</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2008/04/20/5034268.html" rel="bookmark" class="crp_title">Javascript的国际化方案</a></li><li><a href="http://www.javatang.com/archives/2010/07/19/1736428.html" rel="bookmark" class="crp_title">IE6下使png透明的完美解决方式（续）</a></li><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/03/16/440510.html" rel="bookmark" class="crp_title">优秀的JavaScript类库 &#8211; Rico</a></li><li><a href="http://www.javatang.com/archives/2007/10/05/5331208.html" rel="bookmark" class="crp_title">Apache中显示PHP源代码的原因</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2008/07/10/1954272.html/feed</wfw:commentRss>
		<slash:comments>3</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=”"/>，用来指定所要暴露的方法名称。我们举例来说明：</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=”include” value=”" />。</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>Javascript怎样设置文本框的readonly属性？</title>
		<link>http://www.javatang.com/archives/2007/10/06/5104204.html</link>
		<comments>http://www.javatang.com/archives/2007/10/06/5104204.html#comments</comments>
		<pubDate>Sat, 06 Oct 2007 04:51:04 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Web&Server]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[我们知道文本框有一个readonly属性，但是如果使用下面的javascript代码设置该属性时是无效的： document.formname.inputname.readOnly=true; 后来查阅了一下可以将文本框设置一个id，然后通过getElementById方法查找到该对象，这个时候就可以使用该对象的readOnly属性了，具体代码如下： &#60;input type=&#34;text&#34; id=&#34;inputname&#34; /&#62; &#60;script type=&#34;text/javascript&#34;&#62; document.getElementById(&#34;inputname&#34;).readOnly = true; &#60;/script&#62; 我认为使用document.formname.inputname这种方式获取对象本身就是不太好的习惯，而应该使用document.getElementById方式来获取。 参考资料： 用javascript控制readonly属性 Related Posts:Javascript的国际化方案IE6中出现“无法设置selected属性”的bug及解决方法使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法IE6下使png透明的完美解决方式（续）优秀的JavaScript类库 &#8211; Rico]]></description>
			<content:encoded><![CDATA[<p>我们知道文本框有一个readonly属性，但是如果使用下面的javascript代码设置该属性时是无效的：</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: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">formname</span><span style="color: Gray;">.</span><span style="color: Blue;">inputname</span><span style="color: Gray;">.</span><span style="color: Blue;">readOnly</span><span style="color: Gray;">=</span><span style="color: Green;">true</span><span style="color: Gray;">;</span></li></ol></div>
<p>后来查阅了一下可以将文本框设置一个id，然后通过getElementById方法查找到该对象，这个时候就可以使用该对象的readOnly属性了，具体代码如下：</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;">&lt;</span><span style="color: Blue;">input</span><span style="color: Gray;"> </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Blue;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">inputname</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;">&gt;</span></li>
<li><span style="color: Red;">&lt;script type=&quot;text</span><span style="color: #8b0000;">/</span><span style="color: Blue;">javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&gt;</span></li>
<li><span style="color: Red;">document.getElementById(</span><span style="color: #8b0000;">&quot;</span><span style="color: Blue;">inputname</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">).readOnly = true;</span></li>
<li><span style="color: Red;">&lt;/script&gt;</span></li></ol></div>
<p>我认为使用document.formname.inputname这种方式获取对象本身就是不太好的习惯，而应该使用document.getElementById方式来获取。</p>
<p>参考资料：<br />
<a href="http://ilovelate.itpub.net/post/7368/40893" target="_blank">用javascript控制readonly属性</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2008/04/20/5034268.html" rel="bookmark" class="crp_title">Javascript的国际化方案</a></li><li><a href="http://www.javatang.com/archives/2008/10/19/0704277.html" rel="bookmark" class="crp_title">IE6中出现“无法设置selected属性”的bug及解决方法</a></li><li><a href="http://www.javatang.com/archives/2008/07/10/1954272.html" rel="bookmark" class="crp_title">使用DWR出现“例外被抛出且未被接住”错误的原因和解决办法</a></li><li><a href="http://www.javatang.com/archives/2010/07/19/1736428.html" rel="bookmark" class="crp_title">IE6下使png透明的完美解决方式（续）</a></li><li><a href="http://www.javatang.com/archives/2006/03/16/440510.html" rel="bookmark" class="crp_title">优秀的JavaScript类库 &#8211; Rico</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/10/06/5104204.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DWR 2.0正式版发布</title>
		<link>http://www.javatang.com/archives/2007/05/09/1931162.html</link>
		<comments>http://www.javatang.com/archives/2007/05/09/1931162.html#comments</comments>
		<pubDate>Wed, 09 May 2007 14:19:31 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[2007年4月26日， Joe Walker 在博客上写道：“在等待了许久之后，我们现在终于可以说，DWR 2.0正式版发布了！” 相对于1.x版本而言，2.0版本做了很多的更新。根据官方发布的changelog来看，主要增加或增强了三个大的方面：JavaScript Proxy API、Reverse Ajax和Security。 现在还没具体研究，等用过之后再跟大家讨论下 Related Posts:从Java到C++DWR官方更换新域名微软正版认证离线安装包DWR文档之范例Apache Tomcat 发布6.0正式版]]></description>
			<content:encoded><![CDATA[<p>2007年4月26日， <a target="_blank" href="http://getahead.org/blog/joe/">Joe Walker 在博客</a>上写道：“在等待了许久之后，我们现在终于可以说，DWR 2.0正式版发布了！”</p>
<p>相对于1.x版本而言，2.0版本做了很多的更新。根据官方发布的<a target="_blank" href="http://getahead.org/dwr/changelog/dwr20">changelog</a>来看，主要增加或增强了三个大的方面：JavaScript Proxy API、Reverse Ajax和Security。</p>
<p>现在还没具体研究，等用过之后再跟大家讨论下 <img src="http://www.javatang.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://www.javatang.com/archives/2007/01/04/450487.html" rel="bookmark" class="crp_title">从Java到C++</a></li><li><a href="http://www.javatang.com/archives/2007/03/06/0048111.html" rel="bookmark" class="crp_title">DWR官方更换新域名</a></li><li><a href="http://www.javatang.com/archives/2006/12/28/125286.html" rel="bookmark" class="crp_title">微软正版认证离线安装包</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/2007/03/04/0316106.html" rel="bookmark" class="crp_title">Apache Tomcat 发布6.0正式版</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.javatang.com/archives/2007/05/09/1931162.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>DWR文档之常见问题及解答</title>
		<link>http://www.javatang.com/archives/2007/03/10/1321121.html</link>
		<comments>http://www.javatang.com/archives/2007/03/10/1321121.html#comments</comments>
		<pubDate>Sat, 10 Mar 2007 02:13:21 +0000</pubDate>
		<dc:creator>Jet</dc:creator>
				<category><![CDATA[JavaPlateform]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[dwr]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文出处: http://www.javatang.com/archives/2007/03/10/1321121.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 TransformerFactoryConfigurationError 该错误的堆栈输出(stack trace)如下： root cause javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found javax.xml.transform.TransformerFactory.newInstance(Unknown Source) 这主要是因为Tomcat没有正确安装而造成的，而与DWR本身没有太大的关系。最快的解决办法是下载Xalan包并将其放在 $TOMCAT-HOME/common/lib 目录下面。DWR 2.0 在应付此问题上比　DWR 1.x 提升了很多，但此问题最根本的原因在于DWR的XML分析依赖于XSLT分析器。 如果在JDK 5 下出现此问题，可以通过设置如下的VM参数让Tomcat正常运行。 -Djavax.xml.transform.TransformerFactory= com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl XML 解析错误 开始启动DWR是出现的大多数错误都是 XML 解析错误。这取决于你的Tomcat是否安装 Xerces 包，而与DWR本身无关。 JDK 1.3 本身不提供XML解析器，所以你必须需要 xercesImpl.jar 和 xml-apis.jar 包来进行XML解析。 JDK 1.4.0 和 JDK 1.4.1 虽然提供了一个XML解析器，但是问题很多。所以你依然需要将xercesImpl.jar 放在 tomcat\common\endorsed 目录下来覆盖默认的XML解析器。 JDK [...]]]></description>
			<content:encoded><![CDATA[<p>原文出处: http://www.javatang.com/archives/2007/03/10/1321121.html<br />
翻译: Jet Mah<br />
声明: 请维持文章的完整性任意转载</p>
<p><strong>TransformerFactoryConfigurationError</strong></p>
<p>该错误的堆栈输出(stack trace)如下：</p>
<blockquote><p>root cause<br />
javax.xml.transform.TransformerFactoryConfigurationError:<br />
Provider org.apache.xalan.processor.TransformerFactoryImpl not found<br />
javax.xml.transform.TransformerFactory.newInstance(Unknown Source)</p></blockquote>
<p>这主要是因为Tomcat没有正确安装而造成的，而与DWR本身没有太大的关系。最快的解决办法是<a target="_blank" href="http://xml.apache.org/xalan-j/downloads.html">下载Xalan包</a>并将其放在 $TOMCAT-HOME/common/lib 目录下面。DWR 2.0 在应付此问题上比　DWR 1.x 提升了很多，但此问题最根本的原因在于DWR的XML分析依赖于XSLT分析器。</p>
<p>如果在JDK 5 下出现此问题，可以通过设置如下的VM参数让Tomcat正常运行。</p>
<blockquote><p>-Djavax.xml.transform.TransformerFactory=<br />
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl</p></blockquote>
<p><strong>XML 解析错误</strong><br />
开始启动DWR是出现的大多数错误都是 XML 解析错误。这取决于你的Tomcat是否安装 Xerces 包，而与DWR本身无关。</p>
<ul>
<li>JDK 1.3 本身不提供XML解析器，所以你必须需要 xercesImpl.jar 和 xml-apis.jar 包来进行XML解析。</li>
<li>JDK 1.4.0 和 JDK 1.4.1 虽然提供了一个XML解析器，但是问题很多。所以你依然需要将xercesImpl.jar 放在 tomcat\common\endorsed 目录下来覆盖默认的XML解析器。</li>
<li>JDK 1.4.2 和 JDK 5 非常全面地提供了XML解析，所以不需要额外的jar包。</li>
</ul>
<p>最后需要说明的是，各个版本的Tomcat要么本身提供XML解析器要么提供相应的jar包。最重要的是要看你所使用的那个版本的JDK是否提供正确的jar包。</p>
<p><strong>BEA Weblogic下的ClassPath问题</strong><br />
在 Weblogic 8.1 （或许也有其他版本）下面有时会出现DWR找不到用户自己创建的类。</p>
<p>如果dwr.jar放在了一个 APP-INF 目录（比如：APP_INF/lib）下面的话就会产生这种问题。在这种情况下，DWR依然会起作用，调试页面也会出现在示例中，但是查找你创建的类的时候会出现问题。</p>
<p>解决的办法是将dwr.jar 放在你自己的 WEB-INF/lib 目录下面。</p>
<p><strong>cookies被禁用的情况下使用 DWR</strong><br />
Servlet 规范支持当 cookies 被禁用的时候使用 URL re-writing 来实现 HttpSessions。DWR 2.x 支持这个功能，但是 DWR 1.x 不支持。你可以通过以下步骤使 DWR 1.x 实现上述功能：</p>
<ul>
<li>从 dar.jar 中提取出 engine.js 文件，然后像 jsp 文件那样保存到你的文件系统中。</li>
<li>在 “DWREngine._sendData = function(batch)” 函数中增加一行：
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">statsInfo += &quot;;jsessionid=&quot; + &lt;%=&quot;'&quot;+session.getId()+&quot;'&quot;%&gt;</li></ol></div>
</li>
</ul>
<p>通过上述修改之后 DWR 1.x 也可以支持 url-rewriting 了，而 DWR 2+ 本身就支持这个功能。</p>
<p><strong>Annotations 和 Websphere</strong><br />
Websphere 对 Java5 支持比较晚，所以有一些版本的 Websphere 与 Java5 代码不兼容。DWR 1.x 中不包含 Java5 特有的代码，所以不会出现问题。DWR 2.x 包含了 Java5 支持的内容。在使用Websphere / DWR 2.x 的时候可能会出现下面的控制台信息：</p>
<blockquote><p>TRAS0014I: The following exception was logged<br />
java.lang.LinkageError: LinkageError while defining class:<br />
org.directwebremoting.annotations.AnnotationsConfigurator</p>
<p>Could not be defined due to:<br />
org/directwebremoting/annotations/AnnotationsConfigurator<br />
(Unsupported major.minor version 49.0)</p>
<p>This is often caused by having a class defined at multiple<br />
locations within the classloader hierarchy. Other potential<br />
causes include compiling against an older or newer version of<br />
the class that has an incompatible method signature.</p></blockquote>
<p>上面的错误信息说明 Websphere 不能正常运行。</p>
<p><strong>依然有问题？</strong><br />
如果在此没有发现你要的答案，请<a target="_blank" href="http://getahead.org/dwr/support">加入新闻组</a> 到那里去问问。</p>
<p>英文出处:<br />
<a target="_blank" href="http://getahead.org/dwr/fixes">http://getahead.org/dwr/fixes</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/03/15/10468.html" rel="bookmark" class="crp_title">解决DWR运行在JDK1.5+Tomcat5.02出现的错误</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/2007/03/11/3030123.html" rel="bookmark" class="crp_title">DWR文档之dwr.xml</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/10/1321121.html/feed</wfw:commentRss>
		<slash:comments>3</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>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.javatang.com @ 2012-02-11 10:56:44 -->
