﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-综合区</title><link>http://www.blogjava.net/general</link><description>专注于Java技术</description><language>zh-cn</language><lastBuildDate>Sun, 05 Jul 2009 05:15:22 GMT</lastBuildDate><pubDate>Sun, 05 Jul 2009 05:15:22 GMT</pubDate><ttl>60</ttl><item><title>在Hibernate应用中如何处理批量更新和批量删除_含3.0新特性</title><link>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html</link><dc:creator>WANGPENG</dc:creator><author>WANGPENG</author><pubDate>Sun, 05 Jul 2009 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html</guid><wfw:comment>http://www.blogjava.net/wangpeng/comments/285540.html</wfw:comment><comments>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangpeng/comments/commentRss/285540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangpeng/services/trackbacks/285540.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html'>阅读全文</a><img src ="http://www.blogjava.net/wangpeng/aggbug/285540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangpeng/" target="_blank">WANGPENG</a> 2009-07-05 11:21 <a href="http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Store, Q&amp;A(译)</title><link>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Sun, 05 Jul 2009 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/285528.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/285528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/285528.html</trackback:ping><description><![CDATA[<div align="center"><span style="font-size: 10pt;"><strong><span style="font-size: 14pt;"><a href="http://weblogs.java.net/blog/joshy/archive/2009/06/the_java_store.html">Java Store, Q&amp;A</a></span></strong></span><br />
</div>
<span style="font-size: 10pt;">在今年的JavaOne中，比较重要的议题之一就是Java应用商店。目前还没机会亲身体会一下这个商店，但我至少认为Java应用商店为广大Java程序员提供了一个新的展示自我的平台。Please show yourself! (2009.07.05最后更新)<br />
<br />
Java Store是JavaOne中最重大的消息之一。我格外为之骄傲，因为在过去的几个月中我一直秘密地为其工作。由于这一消息，我收到了一大堆关于该商店的问题，以及如何将它与Java生态系统中的其它部分相关联。出于对已极佳的<a href="http://java.sun.com/warehouse/reference/faq/">FAQ</a>的补充，我想应该再回答一些问题。<br />
<strong><br />
简约概括一下你所宣布的消息</strong><br />
我们已经发布了Java Store的私有Beta版，是一个桌面的客户端应用，它允许大家浏览并购买桌面Java应用；还有一个Java仓库的开放Beta版，为了分发应用程序，开发者们可将这些应用程序上传到这个仓库中。现在你就可以登录并浓度一下这个<a href="http://www.java.com/en/store/index.jsp">商店</a>和<a href="http://java.sun.com/warehouse/">仓库</a>。目前，这个商店和仓库只针对美国用户，很快将有更多的国家能够使用。<br />
<br />
<strong>我可以使用除JavaFX之外的其它语言来做用于Java Store的程序吗？</strong><br />
是的！不仅仅是Java和JavaFX，所有基于JVM的语言都是允许的。记住，最终用户并不关心你的应用是用什么语言写的。他们只关心你所做的应用是有用的，看起来和用起来都很好。<br />
<br />
<strong>商店中的应用程序有哪些限制？</strong><br />
查看<a href="http://java.sun.com/warehouse/reference/faq/">FAQ</a>，可以得到全部的细节，但简要的回答是：任何的JVM语句；必须面向消费者；(目前)小于50M；必须是未签名，或使用有效认证的签名。在该商店商用之前，所有的应用都是免费的，商用之后你就需要付费。此处包含的细节很少，但这些都是基本的。<br />
<br />
<strong>何时才允许我贩卖应用程序？</strong><br />
我们将尽快。商店还未开张。但最终，你不会拥有一个货架空空如也的商店。这就是为什么我们要给你们，开发者，时间去准备好你们的应用。当我们向商用开放这个商店时，你就能够标上价格并开始售卖了。<br />
<br />
<strong>顾客将如何找到我的应用程序？</strong><br />
你在JavaOne大会上看到的桌面客户端只是第一个版本。我们已在努力工作，向商店加上新的特性，这将使得顾客们找到你的应用。将有诸如查找，过滤，排序和评论之类的新特性。最后，Java Store将会随Java发布，这就使得你的应用能被近百万人发现。<br />
<br />
<strong>移动和TV应用将会怎样？</strong><br />
Java Store实际包含两个方面。店面是一个桌面客户端程序，它使你能够购买桌面应用。还有一个Java Warehouse，这是你，即开发者，存放待售应用程序的地方。在未来，还会增加针对电视和移动应用的店面，可能会有运营商冠名。你所存放应用程序的Java Warehouse将为所有的这些店面提供服务。桌面应用只是令人激动的第一步罢了。<br />
<br />
<strong>现在商店里都哪些应用了？他们来自于何处？</strong><br />
我们与许多伙伴公司一同工作为这个商店构建新的应用，以及修改已有的应用程序。我个人的最爱是Astronomy Picture of the Day，由位于俄勒冈州Eugene的一个名为<a href="http://www.concentricsky.com/">Concentric Sky</a>的公司创建的。这个程序与NASA的太空图片相连接，能使你浏览以前的图片，阅读图片说明，甚至还能使用Google Translate将文本翻译成其它语言。请看Concentric Sky的CEO在他们的博客中<a href="http://www.concentricsky.com/">对Java Store和JavaFX的描述</a>。<br />
<br />
<strong>为什么开发者们不能在其它国家登录？什么时候才能允许我们在其它国家贩卖应用程序？</strong><br />
我们将尽可能快的在其它国家开放这个商店。国际贸易要比你所想象的还要复杂的多(作为一个工程师，我感到十分的吃惊)。每个国家在税率，私有权和商业方面都有不同的法规。现在我们有法律和商业方面的伙记们在这些问题而工作。当前，我们计划在2010年的早些时候实现这一目标，但是如果我们能做得更快些，那一定会告诉你。<br />
<br />
为了使消息更清晰，我们让Jeet Kaul，Java的高管之一，作一些解释：(点击观看) <br />
<a href="http://blogs.sun.com/webmink/entry/tweetswoop_us_only_java_store"><img src="http://weblogs.java.net/blog/joshy/javastore/SafariScreenSnapz024.png" alt="SafariScreenSnapz024.png" border="0" width="418" height="239" /></a><br />
如果你有任何关于Java Store的问题，请发邮件给我，或者在我们的反馈页面中提交你的评论。<br />
<br />
</span>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/285528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2009-07-05 09:48 <a href="http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过网页修改activex安全设置，添加信任站点，禁用弹出窗口阻止程序</title><link>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html</link><dc:creator>zhip</dc:creator><author>zhip</author><pubDate>Sat, 04 Jul 2009 18:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html</guid><wfw:comment>http://www.blogjava.net/zhip/comments/285521.html</wfw:comment><comments>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhip/comments/commentRss/285521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhip/services/trackbacks/285521.html</trackback:ping><description><![CDATA[<p><font face="新宋体" color="#000000">信任站点的注册表项</font></p>
<p><font face="新宋体" color="#000000">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]</font></p>
<p><font color="#000000">ActiveX的注册表项</font></p>
<p><font color="#000000">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\[0-4]\[*]</font></p>
<p><font color="#000000">[0-4]</font></p>
<p><font color="#000000">值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置<br />
------------------------------<br />
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我的电脑<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地 Intranet 区域<br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 受信任的站点区域<br />
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Internet 区域<br />
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 受限制的站点区域</font></p>
<p><font color="#000000">[*]</font></p>
<p><font color="#000000">1001&nbsp;&nbsp;&nbsp;&nbsp; 下载已签名的 ActiveX 控件<br />
1004&nbsp;&nbsp;&nbsp;&nbsp; 下载未签名的 ActiveX 控件<br />
1200&nbsp;&nbsp;&nbsp;&nbsp; 运行 ActiveX 控件和插件<br />
1201&nbsp;&nbsp;&nbsp;&nbsp; 对没有标记为安全的 ActiveX 控件进行初始化和脚本运行<br />
1405&nbsp;&nbsp;&nbsp;&nbsp; 对标记为可安全执行脚本的 ActiveX 控件执行脚本<br />
2201&nbsp;&nbsp;&nbsp;&nbsp; ActiveX 控件自动提示 **</font></p>
<p><font color="#000000">弹出窗口阻止程序<font face="新宋体">的注册表项</font></font></p>
<p><font face="新宋体" color="#000000">HKEY_CURRENT_USERHKCU\Software\Microsoft\Internet Explorer\New Windows\PopupMgr</font></p>
<p><font color="#000000">具体脚本如下:</font></p>
<p style="margin: 5px; line-height: 150%"><code><span style="color: rgb(0,0,0)"><font face="新宋体"><span style="color: rgb(0,0,204)">&lt;</span>SCRIPT LANGUAGE<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(255,0,255)">"JavaScript"</span><span style="color: rgb(0,0,204)">&gt;</span><br />
<span style="color: rgb(0,0,204)">&lt;</span><span style="color: rgb(0,0,204)">!</span><span style="color: rgb(0,0,204)">-</span><span style="color: rgb(0,0,204)">-</span><br />
var WshShell<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,255)">new</span> ActiveXObject<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"WScript.Shell"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//添加信任站点ip<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">""</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"2"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"192.168.0.1"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">""</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\http"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"2"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\:Range"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"192.168.0.2"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//修改IE ActiveX安全设置<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1001"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1004"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1200"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1201"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1405"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\2201"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//禁用Winxp弹出窗口阻止程序<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"no"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
<br />
alert<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"active控件安全设置，弹出窗口设置，信任站点设置成功"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//--&gt;<br />
</span><br />
<span style="color: rgb(0,0,204)">&lt;</span><span style="color: rgb(0,0,204)">/</span>SCRIPT<span style="color: rgb(0,0,204)">&gt;</span></font></span></code></p>
<img src ="http://www.blogjava.net/zhip/aggbug/285521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhip/" target="_blank">zhip</a> 2009-07-05 02:38 <a href="http://www.blogjava.net/zhip/archive/2009/07/05/285521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>线程同步：何时互斥锁不够，还需要条件变量?</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:07:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285519.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285519.html</trackback:ping><description><![CDATA[<p><span style="color: red"><strong>很显然，pthread中的条件变量与Java中的wait,notify类似</strong></span></p>
<p>假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样add()<br />
{<br />
　　pthread_mutex_lock(lock_s);<br />
　　sum++;<br />
　　pthread_mutex_unlock(lock_s);<br />
}</p>
<p>　　如果操作比较复杂,假设线程t0,t1,t2的操作是sum++,而线程t3则是在sum到达100的时候,打印出一条信息,并对sum清零.这种情况下,如果只用mutex, 则t3需要一个循环,每个循环里先取得lock_s,然后检查sum的状态,如果sum&gt;=100,则打印并清零,然后unlock.如果sum&lt;100,则unlock,并sleep()本线程合适的一段时间.</p>
<p>　这个时候,t0,t1,t2的代码不变,t3的代码如下<br />
　　print()<br />
　　{<br />
　　　　while (1)<br />
　　　　{<br />
　　　　　　pthread_mutex_lock(lock_s);<br />
　　　　　　if(sum&lt;100)<br />
　　　　　　{<br />
　　　　　　　　printf(&#8220;sum reach 100!&#8221;);<br />
　　　　　　　　pthread_mutex_unlock(lock_s);<br />
　　　　　　}<br />
　　　　　　else<br />
　　　　　　{<br />
　　　　　　　　pthread_mutex_unlock(lock_s);<br />
　　　　　　　　my_thread_sleep(100);<br />
　　　　　　　　return OK;<br />
　　　　　　}<br />
　　　　}<br />
　　}</p>
<p>这种办法有两个问题<br />
　　1) sum在大多数情况下不会到达100,那么对t3的代码来说,大多数情况下,走的是else分支,只是lock和unlock,然后sleep().这浪费了CPU处理时间.<br />
　　2) 为了节省CPU处理时间,t3会在探测到sum没到达100的时候sleep()一段时间.这样却又带来另外一个问题,亦即t3响应速度下降.可能在sum到达200的时候,t4才会醒过来.<br />
　　3) 这样,程序员在设置sleep()时间的时候陷入两难境地,设置得太短了节省不了资源,太长了又降低响应速度.真是难办啊!</p>
<p>　　这个时候,condition variable内裤外穿,从天而降,拯救了焦头烂额的你.</p>
<p>　　你首先定义一个condition variable.<br />
　　pthread_cond_t cond_sum_ready=PTHREAD_COND_INITIALIZER;</p>
<p>　　t0,t1,t2的代码只要后面加两行,像这样<br />
　　add()<br />
　　{<br />
　　　　pthread_mutex_lock(lock_s);<br />
　　　　sum++;<br />
　　　　pthread_mutex_unlock(lock_s);<br />
　　　　if(sum&gt;=100)<br />
　　　　pthread_cond_signal(&amp;cond_sum_ready);<br />
　　}<br />
　　而t3的代码则是<br />
　　print<br />
　　{<br />
　　　　pthread_mutex_lock(lock_s);<br />
　　　　while(sum&lt;100)<br />
　　　　pthread_cond_wait(&amp;cond_sum_ready, &amp;lock_s);<br />
　　　　printf(&#8220;sum is over 100!&#8221;);<br />
　　　　sum=0;<br />
　　　　pthread_mutex_unlock(lock_s);<br />
　　　　return OK;<br />
　　}</p>
<p>注意两点:<br />
　　1) 在thread_cond_wait()之前,必须先lock相关联的mutex, 因为假如目标条件未满足,pthread_cond_wait()实际上会unlock该mutex, 然后block,在目标条件满足后再重新lock该mutex, 然后返回.</p>
<p>　　2) 为什么是while(sum&lt;100),而不是if(sum&lt;100) ?这是因为在pthread_cond_signal()和pthread_cond_wait()返回之间,有时间差,假设在这个时间差内,还有另外一个线程t4又把sum减少到100以下了,那么t3在pthread_cond_wait()返回之后,显然应该再检查一遍sum的大小.这就是用while的用意</p>
<p><br />
boost lib</p>
<p>http://www.stlchina.org/twiki/bin/view.pl/Main/BoostThread#safag7ZYn7rqw</p>
<p><br />
文章出处：DIY部落(http://www.diybl.com/course/3_program/c++/cppxl/20090508/166837.html)</p>
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:07 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POSIX thread (pthread) 简介</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:06:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285518.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285518.html</trackback:ping><description><![CDATA[dd dddddddddddddddd
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:06 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POSIX线程和信号量小结</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:02:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285517.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285517.html</trackback:ping><description><![CDATA[dd
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:02 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下进程的各种状态</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285515.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285515.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285515.html</trackback:ping><description><![CDATA[<p>Linux下进程的各种状态<br />
</p>
<p><strong><span style="color: red"><strong>我的问题来了，假如是一个进程使用了udp的阻塞recvfrom()方法，在网络连接没有数据到达时，进程会在这个方法上面阻塞？这个阻塞的意思是进程会进入等待队列，此时的进程处于下列的什么状态？？然后cpu进而调度其他进程。。。还是cpu仍然给此进程分配时间片在它自己的时间片上让其阻塞在此方法上,这不是浪费cpu时间??<br />
</strong>我是真的得好好看看操作系统的书了<br />
</span></strong><br />
D Uninterruptible sleep (usually IO)<br />
不可中断的深度睡眠，一般由IO引起，同步IO在做读或写操作时，此进程不能做其它事情，只能等待，这时进程处于这种状态，如果程序采用异步IO，这种状态应该就很少见到了<br />
&nbsp;<br />
R Running or runnable (on run queue)&nbsp; <br />
进程处于运行或就绪状态<br />
&nbsp;<br />
S Interruptible sleep (waiting for an event to complete) <br />
可接收信号的睡眠状态，sleep函数可演示这种状态<br />
&nbsp;<br />
T Stopped, either by a job control signal or because it is being traced.<br />
被ctrl+z中断或被trace<br />
&nbsp;<br />
W paging (not valid since the 2.6.xx kernel) <br />
&nbsp;<br />
X dead (should never be seen) <br />
进程已经完全死掉，不可能看见这种状态的<br />
&nbsp;<br />
Z Defunct ("zombie") process, terminated but not reaped by its parent.<br />
进程已经终止，但是其父进程没有来及处理它，多进程写不好的话，这种状态是常见的<br />
&nbsp;<br />
For BSD formats and when the stat keyword is used, additional characters may <br />
be displayed: <br />
&lt; high-priority (not nice to other users) <br />
&nbsp;<br />
N low-priority (nice to other users) <br />
&nbsp;<br />
L has pages locked into memory (for real-time and custom IO) <br />
&nbsp;<br />
s is a session leader<br />
&nbsp;<br />
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) <br />
&nbsp;<br />
+ is in the foreground process group<br />
&nbsp;<br />
关于D和Z一段有趣的解释：<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; 有一类垃圾却并非这么容易打扫，那就是我们常见的状态为 D (Uninterruptible sleep) ，以及状态为 Z (Zombie) 的垃圾进程。这些垃圾进程要么是求而不得，像怨妇一般等待资源(D)，要么是僵而不死，像冤魂一样等待超度(Z)，它们在 CPU run_queue 里滞留不去，把 Load Average 弄的老高老高，没看过我前一篇blog的国际友人还以为这儿民怨沸腾又出了什么大事呢。怎么办？开枪！kill -9！看你们走是不走。但这两种垃圾进程偏偏是刀枪不入的，不管换哪种枪法都杀不掉它们。无奈，只好reboot，像剿灭禽流感那样不分青红皂白地一律扑杀！<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; 怨妇 D，往往是由于 I/O 资源得不到满足，而引发等待，在内核源码 fs/proc/array.c 里，其文字定义为&#8220; "D (disk sleep)", /* 2 */ &#8221;（由此可知 D 原是Disk的打头字母），对应着 include/linux/sched.h 里的&#8220; #define TASK_UNINTERRUPTIBLE 2 &#8221;。举个例子，当 NFS 服务端关闭之时，若未事先 umount 相关目录，在 NFS 客户端执行 df 就会挂住整个登录会话，按 Ctrl+C 、Ctrl+Z 都无济于事。断开连接再登录，执行 ps axf 则看到刚才的 df 进程状态位已变成了 D ，kill -9 无法杀灭。正确的处理方式，是马上恢复 NFS 服务端，再度提供服务，刚才挂起的 df 进程发现了其苦苦等待的资源，便完成任务，自动消亡。若 NFS 服务端无法恢复服务，在 reboot 之前也应将 /etc/mtab 里的相关 NFS mount 项删除，以免 reboot 过程例行调用 netfs stop 时再次发生等待资源，导致系统重启过程挂起。</p>
<p>　　冤魂 Z 之所以杀不死，是因为它已经死了，否则怎么叫 Zombie（僵尸）呢？冤魂不散，自然是生前有结未解之故。在UNIX/Linux中，每个进程都有一个父进程，进程号叫PID（Process ID），相应地，父进程号就叫PPID（Parent PID）。当进程死亡时，它会自动关闭已打开的文件，舍弃已占用的内存、交换空间等等系统资源，然后向其父进程返回一个退出状态值，报告死讯。如果程序有 bug，就会在这最后一步出问题。儿子说我死了，老子却没听见，没有及时收棺入殓，儿子便成了僵尸。在UNIX/Linux中消灭僵尸的手段比较残忍，执行 ps axjf 找出僵尸进程的父进程号（PPID，第一列），先杀其父，然后再由进程天子 init（其PID为1，PPID为0）来一起收拾父子僵尸，超度亡魂，往生极乐。注意，子进程变成僵尸只是碍眼而已，并不碍事，如果僵尸的父进程当前有要务在身，则千万不可贸然杀之。</p>
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 00:21 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>waitpid</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285514.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285514.html</trackback:ping><description><![CDATA[waitpid(等待子进程中断或结束)<br />
　　表头文件<br />
　　#include&lt;sys/types.h&gt;<br />
　　#include&lt;sys/wait.h&gt;<br />
　　定义函数 pid_t waitpid(pid_t pid,int * status,int options);<br />
　　函数说明<br />
　　waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程<br />
　　结束。如果在调用 wait()时子进程已经结束,则 wait()会立即<br />
　　返回子进程结束状态值。 子进程的结束状态值会由参数 status 返回,<br />
　　而子进程的进程识别码也会一起返回。如果不在意结束状态值,则<br />
　　参数 status 可以设成 NULL。参数 pid 为欲等待的子进程识别码,<br />
　　其他数值意义如下:<br />
　　pid&lt;-1 等待进程组识别码为 pid 绝对值的任何子进程。<br />
　　pid=-1 等待任何子进程,相当于 wait()。 <br />
　　pid=0 等待进程组识别码与目前进程相同的任何子进程。 <br />
　　pid&gt;0 等待任何子进程识别码为 pid 的子进程。<br />
　　参数 option 可以为 0 或下面的 OR 组合:<br />
　　WNOHANG 如果没有任何已经结束的子进程则马上返回, 不予以等待。<br />
　　WUNTRACED 如果子进程进入暂停执行情况则马上返回,但结束状态不予以理会。<br />
　　子进程的结束状态返回后存于 status,底下有几个宏可判别结束情况:<br />
　　WIFEXITED(status)如果子进程正常结束则为非 0 值。<br />
　　WEXITSTATUS(status)取得子进程 exit()返回的结束代码,一般会先用 WIFEXITED 来判断是否正常结束才能使用此宏。<br />
　　WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为真<br />
　　WTERMSIG(status) 取得子进程因信号而中止的信号代码,一般会先用 WIFSIGNALED 来判断后才使用此宏。<br />
　　WIFSTOPPED(status) 如果子进程处于暂停执行情况则此宏值为真。一般只有使用 WUNTRACED 时才会有此情况。<br />
　　WSTOPSIG(status) 取得引发子进程暂停的信号代码,一般会先用 WIFSTOPPED 来判断后才使用此宏。<br />
　　如果执行成功则返回子进程识别码(PID) ,如果有错误发生则返回<br />
　　返回值-1。失败原因存于 errno 中。<br />
　　/******<br />
　　* waitpid.c - Simple wait usage<br />
　　*********/<br />
　　#include &lt;unistd.h&gt;<br />
　　#include &lt;sys/types.h&gt;<br />
　　#include &lt;sys/wait.h&gt;<br />
　　#include &lt;stdio.h&gt;<br />
　　#include &lt;stdlib.h&gt;<br />
　　int main( void )<br />
　　{<br />
　　pid_t childpid;<br />
　　int status;<br />
　　childpid = fork();<br />
　　if ( -1 == childpid )<br />
　　{<br />
　　perror( "fork()" );<br />
　　exit( EXIT_FAILURE );<br />
　　}<br />
　　else if ( 0 == childpid )<br />
　　{<br />
　　puts( "In child process" );<br />
　　sleep( 3 );//让子进程睡眠3秒，看看父进程的行为<br />
　　printf("\tchild pid = %d\n", getpid());<br />
　　printf("\tchild ppid = %d\n", getppid());<br />
　　exit(EXIT_SUCCESS);<br />
　　}<br />
　　else <br />
　　{<br />
　　waitpid( childpid, &amp;status, 0 );<br />
　　puts( "in parent" );<br />
　　printf( "\tparent pid = %d\n", getpid() );<br />
　　printf( "\tparent ppid = %d\n", getppid() );<br />
　　printf( "\tchild process exited with status %d \n", status );<br />
　　}<br />
　　exit(EXIT_SUCCESS);<br />
　　}<br />
　　[root@localhost src]# gcc waitpid.c <br />
　　[root@localhost src]# ./a.out <br />
　　In child process<br />
　　child pid = 4469<br />
　　child ppid = 4468<br />
　　in parent<br />
　　parent pid = 4468<br />
　　parent ppid = 4379<br />
　　child process exited with status 0 <br />
　　[root@localhost src]# <br />
　　如果将上面&#8220;waitpid( childpid, &amp;status, 0 );&#8221;行注释掉，程序执行效果如下：<br />
　　[root@localhost src]# ./a.out <br />
　　In child process<br />
　　in parent<br />
　　parent pid = 4481<br />
　　parent ppid = 4379<br />
　　child process exited with status 1331234400 <br />
　　[root@localhost src]# child pid = 4482<br />
　　child ppid = 1<br />
　　子进程还没有退出，父进程已经退出了。
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 00:01 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>word 快捷键</title><link>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html</link><dc:creator>helloworld2008</dc:creator><author>helloworld2008</author><pubDate>Sat, 04 Jul 2009 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html</guid><wfw:comment>http://www.blogjava.net/zhaochengming/comments/285512.html</wfw:comment><comments>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhaochengming/comments/commentRss/285512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhaochengming/services/trackbacks/285512.html</trackback:ping><description><![CDATA[<p>常用快捷键<br />
快捷键　　　　　　　　　 作用<br />
Ctrl+Shift+Spacebar　　 创建不间断空格<br />
Ctrl+ -(连字符)　　　　　创建不间断连字符<br />
Ctrl+B　　　　　　　　　 使字符变为粗体<br />
Ctrl+I　　　　　　　　　 使字符变为斜体<br />
Ctrl+U　　　　　　　　　 为字符添加下划线<br />
Ctrl+Shift+　　　　　　　缩小字号<br />
Ctrl+Shift+&gt;　　　　　　 增大字号<br />
Ctrl+Q　　　　　　　　　　删除段落格式<br />
Ctrl+Spacebar　　　　　　删除字符格式<br />
Ctrl+C　　　　　　　　　 复制所选文本或对象<br />
Ctrl+X　　　　　　　　　 剪切所选文本或对象<br />
Ctrl+V　　　　　　　　　 粘贴文本或对象<br />
Ctrl+Z　　　　　　　　　 撤消上一操作<br />
Ctrl+Y　　　　　　　　　 重复上一操作</p>
<p>快捷键大全<br />
1.用于设置字符格式和段落格式的快捷键<br />
快捷键　　　　　　　　　 作用<br />
Ctrl+Shift+F　　　　　　改变字体<br />
Ctrl+Shift+P　　　　　　改变字号<br />
Ctrl+Shift+&gt;　　　　　　增大字号<br />
Ctrl+Shift+&lt;　　　　　　减小字号<br />
Ctrl+]　　　　　　　　　逐磅增大字号<br />
Ctrl+[　　　　　　　　　逐磅减小字号<br />
Ctrl+D　　　　　　　　　改变字符格式（"格式"菜单中的"字体"命令）<br />
Shift+F3　　　　　　　　切换字母大小写<br />
Ctrl+Shift+A　　　　　　将所选字母设为大写<br />
Ctrl+B　　　　　　　　　应用加粗格式<br />
Ctrl+U　　　　　　　　　应用下划线格式<br />
Ctrl+Shift+W　　　　　　只给字、词加下划线，不给空格加下划线<br />
Ctrl+Shift+H　　　　　　应用隐藏文字格式<br />
Ctrl+I　　　　　　　　　应用倾斜格式<br />
Ctrl+Shift+K　　　　　　将字母变为小型大写字母<br />
Ctrl+=（等号）　　　　　应用下标格式（自动间距）<br />
Ctrl+Shift++（加号）　　应用上标格式（自动间距）<br />
Ctrl+Shift+Z　　　　　　取消人工设置的字符格式<br />
Ctrl+Shift+Q　　　　　　将所选部分设为Symbol字体<br />
Ctrl+Shift+*（星号）　　显示非打印字符<br />
Shift+F1（单击）　　　　需查看文字格式了解其格式的文字<br />
Ctrl+Shift+C　　　　　　复制格式<br />
Ctrl+Shift+V　　　　　　粘贴格式<br />
Ctrl+1　　　　　　　　　单倍行距<br />
Ctrl+2　　　　　　　　　双倍行距<br />
Ctrl+5　　　　　　　　　1.5 倍行距<br />
Ctrl+0　　　　　　　　　在段前添加一行间距<br />
Ctrl+E　　　　　　　　　段落居中<br />
Ctrl+J　　　　　　　　　两端对齐<br />
Ctrl+L　　　　　　　　　左对齐<br />
Ctrl+R　　　　　　　　　右对齐<br />
Ctrl+Shift+D　　　　　　分散对齐<br />
Ctrl+M　　　　　　　　　左侧段落缩进<br />
Ctrl+Shift+M　　　　　　取消左侧段落缩进<br />
Ctrl+T　　　　　　　　　创建悬挂缩进<br />
Ctrl+Shift+T　　　　　　减小悬挂缩进量<br />
Ctrl+Q　　　　　　　　　取消段落格式<br />
Ctrl+Shift+S　　　　　　应用样式<br />
Alt+Ctrl+K　　　　　　　启动"自动套用格式"<br />
Ctrl+Shift+N　　　　　　应用"正文"样式<br />
Alt+Ctrl+1　　　　　　　应用"标题1"样式<br />
Alt+Ctrl+2　　　　　　　应用"标题2"样式<br />
Alt+Ctrl+3　　　　　　　应用"标题3"样式<br />
Ctrl+Shift+L　　　　　　应用"列表"样式<br />
</p>
<p>2.用于编辑和移动文字及图形的快捷键<br />
◆删除文字和图形<br />
快捷键　　　　　　　　　 作用<br />
Backspace　　　　　　　 删除左侧的一个字符<br />
Ctrl+Backspace　　　　　删除左侧的一个单词<br />
Delete　　　　　　　　　删除右侧的一个字符<br />
Ctrl+Delete　　　　　　 删除右侧的一个单词<br />
Ctrl+X　　　　　　　　　将所选文字剪切到"剪贴板"<br />
Ctrl+Z　　　　　　　　　撤消上一步操作<br />
Ctrl+F3　　　　　　　　 剪切至"图文场"</p>
<p>◆复制和移动文字及图形<br />
快捷键　　　　　　　　　作用<br />
Ctrl+C　　　　　　　　　复制文字或图形<br />
F2（然后移动插入　　　　移动选取的文字或图形点并按Enter键）<br />
Alt+F3　　　　　　　　　创建"自动图文集"词条<br />
Ctrl+V　　　　　　　　　粘贴"剪贴板"的内容<br />
Ctrl+Shift+F3　　　　　粘贴"图文场"的内容<br />
Alt+Shift+R　　　　　　复制文档中上一节所使用的页眉或页脚</p>
<p>◆插入特殊字符<br />
快捷键　　　　　　　　　 插入<br />
Ctrl+F9　　　　　　　　 域<br />
Shift+Enter　　　　　　 换行符<br />
Ctrl+Enter　　　　　　　分页符<br />
Ctrl+Shift+Enter　　　　列分隔符<br />
Ctrl+ -　　　　　　　　 可选连字符<br />
Ctrl+Shift+ -　　　　　 不间断连字符<br />
Ctrl+Shift+空格　　　　 不间断空格<br />
Alt+Ctrl+C　　　　　　　版权符号<br />
Alt+Ctrl+R　　　　　　　注册商标符号<br />
Alt+Ctrl+T　　　　　　　商标符号<br />
Alt+Ctrl+.（句点）　　　省略号</p>
<p>◆选定文字和图形<br />
选定文本的方法是：按住 Shift 键并按能够移动插入点的键。<br />
快捷键　　　　　　　　　　 将选定范围扩展至<br />
Shift+&#8594;　　　　　　　　　右侧的一个字符<br />
Shift+&#8592;　　　　　　　　　左侧的一个字符<br />
Ctrl+Shift+&#8594;　　　　　　 单词结尾<br />
Ctrl+Shift+&#8592;　　　　　　 单词开始<br />
Shift+End　　　　　　　　 行尾<br />
Shift+Home　　　　　　　　行首<br />
Shift+&#8595;　　　　　　　　　下一行<br />
Shift+&#8593;　　　　　　　　　上一行<br />
Ctrl+Shift+&#8595;　　　　　　 段尾<br />
Ctrl+Shift+&#8593;　　　　　　 段首<br />
Shift+Page Down　　　　　 下一屏<br />
Shift+Page Up　　　　　　 上一屏<br />
Ctrl+Shift+Home　　　　　 文档开始处<br />
Ctrl+Shift+End　　　　　　文档结尾处<br />
Alt+Ctrl+Shift+Page Down　窗口结尾<br />
Ctrl+A　　　　　　　　　　 包含整篇文档<br />
Ctrl+Shift+F8+&#8593;或&#8595;　　　 纵向文本块(按 Esc 键取消选定模式)<br />
F8+箭头键　　　　　　　　　文档中的某个具体位置(按Esc键取消选定模式)</p>
<p>◆选定表格中的文字和图形<br />
快捷键　　　　　　　　　　　　　作用<br />
Tab键　　　　　　　　　　　　　 选定下一单元格的内容<br />
Shift+Tab　　　　　　　　　　　 选定上一单元格的内容<br />
按住Shift键并重复　　　　　　　 按某箭头键将所选内容扩展到相邻单元格<br />
Ctrl+Shift+F8然后按箭头键　　　 扩展所选内容（或块）<br />
Shift+F8　　　　　　　　　　　　缩小所选内容<br />
Alt+数字键盘上的5　　　　　　　 选定整张表格<br />
（Num Lock键需处于关闭状态）</p>
<p>◆移动插入点</p>
<p>&nbsp;<img height="633" alt="" src="http://www.blogjava.net/images/blogjava_net/zhaochengming/wordkey.jpg" width="588" border="0" /><br />
快捷键　　　　　　　　　作用<br />
&#8592;　　　　　　　　　　　左移一个字符<br />
&#8594;　　　　　　　　　　　右移一个字符<br />
Ctrl+&#8592;　　　　　　　　左移一个单词<br />
Ctrl+&#8594;　　　　　　　　右移一个单词<br />
Ctrl+&#8593;　　　　　　　　上移一段<br />
Ctrl+&#8595;　　　　　　　　下移一段<br />
Shift+Tab　　　　　　　左移一个单元格（在表格中）<br />
Tab　　　　　　　　　　右移一个单元格（在表格中）<br />
&#8593;　　　　　　　　　　 上移一行<br />
&#8595;　　　　　　　　　　 下移一行<br />
End　　　　　　　　　　移至行尾<br />
Home　　　　　　　　　 移至行首<br />
Alt+Ctrl+Page Up　　　 移至窗口顶端<br />
Alt+Ctrl+Page Down　　 移至窗口结尾<br />
Page Up　　　　　　　　上移一屏（滚动）<br />
Page Down　　　　　　　下移一屏（滚动）<br />
Ctrl+Page Down　　　　 移至下页顶端<br />
Ctrl+Page Up　　　　　 移至上页顶端<br />
Ctrl+End　　　　　　　 移至文档结尾 <br />
Ctrl+Home　　　　　　　移至文档开头<br />
Shift+F5　　　　　　　 移至前一处修订；对于刚打开的文档，移至上一次关闭文档时<br />
　　　　　　　　　　　　插入点所在位置</p>
<p>◆在表格中移动<br />
快捷键　　　　　　　　　光标移至<br />
Tab　　　　　　　　　　一行中的下一个单元格<br />
Shift+Tab　　　　　　　一行中的上一个单元格<br />
Alt+Home　　　　　　　　一行中的第一个单元格<br />
Alt+End　　　　　　　　一行中的最后一个单元格<br />
Alt+Page Up　　　　　　一列中的第一个单元格<br />
Alt+Page Down　　　　　一列中的最后一个单元格<br />
&#8593;　　　　　　　　　　　上一行 <br />
&#8595;　　　　　　　　　　　下一行</p>
<p><br />
◆在表格中插入段落和制表符<br />
快捷键　　　　　　　　在单元格中插入<br />
Enter　　　　　　　　 新段落<br />
Ctrl+Tab　　　　　　　制表符</p>
<p>3.用于处理文档的快捷键<br />
◆创建、查看和保存文档<br />
快捷键　　　　　　　　作用<br />
Ctrl+N　　　　　　　　创建与当前或最近使用过的文档类型相同的新文档<br />
Ctrl+O　　　　　　　　打开文档<br />
Ctrl+W　　　　　　　　关闭文档<br />
Alt+Ctrl+S　　　　　　拆分文档窗口<br />
Alt+Shift+C　　　　　 撤消拆分文档窗口<br />
Ctrl+S　　　　　　　　保存文档</p>
<p>◆查找、替换和浏览文本 <br />
Ctrl+F　　　　　　　　查找文字、格式和特殊项<br />
Alt+Ctrl+Y　　　　　　在关闭"查找和替换"窗口之后重复查找<br />
Ctrl+H　　　　　　　　替换文字、特殊格式和特殊项<br />
Ctrl+G　　　　　　　　定位至页、书签、脚注、表格、注释、图形或其它位置<br />
Alt+Ctrl+Z　　　　　　返回至页、书签、脚注、表格、批注、图形或其他位置<br />
Alt+Ctrl+Home　　　　 浏览文档</p>
<p>◆撤消和恢复操作<br />
Esc　　　　　　　　　取消操作<br />
Ctrl+Z　　　　　　　 撤消操作<br />
Ctrl+Y　　　　　　　 恢复或重复操作</p>
<p>◆切换至其他视图<br />
Alt+Ctrl+P　　　　　　切换到页面视图 <br />
Alt+Ctrl+O　　　　　　切换到大纲视图<br />
Alt+Ctrl+N　　　　　　切换到普通视图<br />
Ctrl+\\　　　　　　　　在主控文档和子文档之间移动</p>
<p>◆用于审阅文档的快捷键<br />
快捷键　　　　　　　　　 作用<br />
Alt+Ctrl+M　　　　　　　插入批注<br />
Ctrl+Shift+E　　　　　　打开或关闭标记修订功能<br />
Home　　　　　　　　　　定位至批注开始<br />
End　　　　　　　　　　 定位至批注结尾<br />
Ctrl+Home　　　　　　　定位至一组批注的起始处<br />
Ctrl+End　　　　　　　 定位至一组批注的结尾处<br />
4.用于处理引用、脚注和尾注的快捷键<br />
快捷键　　　　　　　　　作用 <br />
Alt+Shift+O　　　　　　标记目录项<br />
Alt+Shift+I　　　　　　标记引文目录项<br />
Alt+Shift+X　　　　　　标记索引项<br />
Alt+Ctrl+F　　　　　　 插入脚注<br />
Alt+Ctrl+E　　　　　　 插入尾注</p>
<p>5.用于处理域的快捷键<br />
快捷键　　　　　　　　 作用<br />
Alt+Shift+D　　　　　　插入Date域<br />
Alt+Ctrl+L　　　　　　 插入Listnum域<br />
Alt+Shift+P　　　　　　插入Page域<br />
Alt+Shift+T　　　　　　插入Time域<br />
Ctrl+F9　　　　　　　　插入空域<br />
Ctrl+Shift+F7　　　　 更新Word源文档中的链接信息<br />
F9　　　　　　　　　　 更新所选域<br />
Ctrl+Shift+F9　　　　 解除域的链接<br />
Shift+F9　　　　　　　在域代码和其结果之间进行切换<br />
Alt+F9　　　　　　　　在所有的域代码及其结果间进行切换<br />
Alt+Shift+F9　　　　　从显示域结果的域中运行Gotobutton 或 Macrobutton<br />
F11　　　　　　　　　 定位至下一域<br />
Shift+F11　　　　　　 定位至前一域<br />
Ctrl+F11　　　　　　　锁定域<br />
Ctrl+Shift+F11　　　　解除对域的锁定</p>
<p>6.用于处理文档大纲的快捷键<br />
Alt+Shift+&#8592;　　　　　　提升段落级别<br />
Alt+Shift+&#8594;　　　　　　降低段落级别<br />
Ctrl+Shift+N　　　　　　降级为正文<br />
Alt+Shift+&#8593;　　　　　　上移所选段落<br />
Alt+Shift+&#8595;　　　　　　下移所选段落<br />
Alt+Shift+ +　　　　　　扩展标题下的文本<br />
Alt+Shift+ -　　　　　　折叠标题下的文本<br />
Alt+Shift+A　　　　　　 扩展或折叠所有文本或标题<br />
数字键盘上的斜杠（/）　 隐藏或显示字符格式<br />
Alt+Shift+L　　　　　　只显示首行正文或显示全部正文<br />
Alt+Shift+1　　　　　　显示所有具有"标题1"样式的标题<br />
Alt+Shift+n　　　　　　显示从"标题1"到"标题n"的<br />
（指标题级别）　　　　　所有标题 </p>
<p>7.用于进行邮件合并的快捷键<br />
要使用这些按键组合，需要先建立邮件合并的主文档。<br />
快捷键　　　　　　　　 作用 <br />
Alt+Shift+K　　　　　　预览邮件合并<br />
Alt+Shift+N　　　　　　合并文档<br />
Alt+Shift+M　　　　　　打印已合并的文档<br />
Alt+Shift+E　　　　　　编辑邮件合并数据文档<br />
Alt+Shift+F　　　　　　插入合并域</p>
<p>8.用于处理 Web 页的快捷键<br />
快捷键　　　　　　作用<br />
Ctrl+K　　　　　　插入超级链接<br />
Alt+&#8592;　　　　　　返回一页<br />
Alt+&#8594;　　　　　　前进一页<br />
F9　　　　　　　　刷新</p>
<p>9.用于打印和预览文档的按键<br />
Ctrl+P　　　　　　　　　打印文档<br />
Alt+Ctrl+I　　　　　　　切换至或退出打印预览箭头键在放大的预览页上移动<br />
Page Up或Page Down　　　在缩小显示比例时逐页翻阅预览页<br />
Ctrl+Home　　　　　　　 在缩小显示比例时移至第一张预览页<br />
Ctrl+End　　　　　　　　在缩小显示比例时移至最后一张预览页<br />
10.用于Office助手的快捷键<br />
如果要完成下面大多数操作，Office 助手必须打开并且可见。<br />
快捷键　　　　　　　　　作用<br />
F1　　　　　　　　　　　获得Office助手（助手处于显示状态）的帮助<br />
Alt+F6　　　　　　　　　激活Office助手气球<br />
Alt+数字键　　　　　　　从助手显示的列表中选择帮助主题（Alt+1代表第一个主题以<br />
　　　　　　　　　　　 此类推） <br />
Alt+&#8595;　　　　　　　　　查看更多的帮助主题 <br />
Alt+&#8593;　　　　　　　　　查看前面的帮助主题<br />
Esc　　　　　　　　　　关闭助手消息或提示</p>
<p>11.用于帮助的快捷键<br />
◆在帮助窗口中工作<br />
快捷键　　　　　　　　作用<br />
Alt+O　　　　　　　　 显示"选项"菜单以访问帮助工具栏上的命令<br />
Alt+空格键　　　　　　显示程序"控制"菜单<br />
Alt+F4　　　　　　　　关闭活动的帮助窗口</p>
<p>◆在定位窗格中移动<br />
快捷键　　　　　　　　作用<br />
Ctrl+Tab　　　　　　　切换到下一选项卡<br />
Ctrl+Shift+Tab　　　　切换到前一选项卡<br />
Alt+C　　　　　　　　 切换到"目录"选项卡<br />
Alt+I　　　　　　　　 切换到"索引"选项卡<br />
Enter　　　　　　　　 打开或关闭所选书籍，或打开所选帮助主题<br />
&#8595;　　　　　　　　　　选择下一书籍或帮助主题<br />
&#8593;　　　　　　　　　　选择前一书籍或帮助主题</p>
<p>◆在主题窗格中移动<br />
快捷键　　　　　　　　作用<br />
Alt+&#8592;　　　　　　　　返回查看过的帮助主题<br />
Alt+&#8594;　　　　　　　　前往查看过的帮助主题<br />
Tab　　　　　　　　　 转到第一个或下一超级链接<br />
Shift+Tab　　　　　　转到最后或前一超级链接<br />
Enter　　　　　　　　激活所选超级链接<br />
Esc　　　　　　　　　关闭弹出的窗口<br />
&#8593;　　　　　　　　　 向帮助主题的开始处滚动 <br />
&#8595;　　　　　　　　　 向帮助主题的结尾处滚动<br />
Page Up　　　　　　　以更大的增量向帮助主题的开始处滚动<br />
Page Down　　　　　　以更大的增量向帮助主题的结尾处滚动<br />
Home　　　　　　　　 移动到帮助主题的开始<br />
End　　　　　　　　　移动到帮助主题的结尾<br />
Ctrl+P　　　　　　　打印当前帮助主题<br />
Ctrl+A　　　　　　　选定整个帮助主题<br />
Ctrl+C　　　　　　　将选定内容复制到"剪贴板"</p>
<p>12.用于菜单的快捷键<br />
快捷键　　　　　　　　作用<br />
Shift+F10　　　　　　 显示<br />
F10　　　　　　　　　　激活菜单栏 <br />
Alt+Spacebar　　　　　显示程序标题栏上的程序图标菜单<br />
&#8595;/&#8593;（如菜单　　　　 选择菜单或子菜单中的下一个<br />
或子菜单已显示）　　　或前一个命令<br />
&#8592;/&#8594;　　　　　　　　 选择左边或者右边的菜单，或者在显示子菜单时，在主菜单和<br />
　　　　　　　　　　 子菜单之间切换<br />
Home或End　　　　　　选择菜单或子菜单中第一个或者最后一个命令<br />
Alt　　　　　　　　　同时关闭显示的菜单和子菜单<br />
Esc　　　　　　　　　关闭显示的菜单。若显示子菜单时，只关闭子菜单<br />
Alt+Ctrl+ =　　　　　将工具栏按钮添至菜单。当键入此快捷键然后单击工具栏按钮<br />
　　　　　　　　　　 时，Microsoft Word会将按钮添至适当的菜单。例如，单击"格<br />
　　　　　　　　　　 式"工具栏上的"项目符号"按钮可以将"项目符号"命令添至"格式"菜单。<br />
Alt+Ctrl+ -从菜单中删除命令。当键入此快捷键（数字键盘上然后选择菜单命令时，该命令将被删的减号键）除。如果改变了主意，可以按Esc取消此快捷命令，要恢复已修改了的菜单可以通过在"工具/自　　　　　　　　　　　定义"重新设置菜单。<br />
Alt+Ctrl++为菜单命令自定义快捷键。当您键（数字小键盘入此快捷键并选择了菜单命令时，将上的加号键）会出现"自定义键盘"对话框，你可以在其中添加更改或删除快捷键<br />
13.用于窗口和对话框的快捷键<br />
◆在文档和程序窗口中移动<br />
快捷键　　　　　　　作用<br />
Alt+Tab　　　　　　 切换至下一个程序或Microsoft Word文档窗口<br />
Alt+Shift+Tab　　　 切换至上一个程序或Microsoft Word文档窗口<br />
Ctrl+Esc　　　　　　显示Microsoft Windows"开始"菜单<br />
Ctrl+W　　　　　　　关闭活动文档窗口<br />
Ctrl+F5　　　　　　 将已最大化的活动文档窗口还原<br />
Ctrl+F6　　　　　　 切换至下一个Word文档窗口<br />
Ctrl+Shift+F6　　　切换至上一个Word文档窗口<br />
Ctrl+F7，　　　　　　按箭头键在文档窗口不处于最大化状态时，并按下Enter执行"移　　　　　　　　　　　　动"命令（单击标题栏中的文档图标可显示此命令） <br />
Ctrl+F8，　　　　　　按箭头键在文档窗口不处于最大化状态时，并按下Enter执行"大　　　　　　　　　　　　小"命令（单击标题栏中的文档图标可显示此命令）<br />
Ctrl+F10　　　　　　　最大化文档窗口 </p>
<p>◆在对话框中移动<br />
快捷键　　　　　　　　　作用<br />
Ctrl+Tab　　　　　　　　切换至对话框中的下一张选项卡<br />
Ctrl+Shift+Tab　　　　　切换至对话框中的上一张选项卡<br />
Tab　　　　　　　　　　 移至下一选项或选项组<br />
Shift+Tab　　　　　　　 移至上一选项或选项组,箭头在所选列表中的选项间移动，或者在一组选项的选项间移动<br />
Spacebar　　　　　　　　执行所选按钮的指定操作；选中或清除复选框,字母在所选列表中，移动到以键入字母开始的下一选项<br />
Alt+字母　　　　　　　　选择选项，或者选中或清除包含该字母（带有下划线）的选项名称旁的复选框<br />
Alt+&#8595;（选中列表时）　　打开所选列表<br />
Esc（选中列表时）　　　关闭所选列表<br />
Enter　　　　　　　　　执行对话框中默认按钮的指定操作<br />
Esc　　　　　　　　　　取消命令并关闭对话框 </p>
<p>14.用于"打开"和"另存为"对话框的快捷键<br />
快捷键　　　　　　　 作用<br />
Ctrl+F12　　　　　　显示"打开"对话框<br />
F12　　　　　　　　　显示"另存为"对话框<br />
Alt+1　　　　　　　　转到上一文件夹（"向上一级"按钮）<br />
Alt+3　　　　　　　　关闭对话框，并打开（"搜索Web"按钮）<br />
Alt+4　　　　　　　　删除所选文件夹或文件（"删除"按钮）<br />
Alt+5　　　　　　　　在打开的文件夹中创建新子文件夹（"新建文件夹"按钮）<br />
Alt+6　　　　　　　　在"列表"、"详细资料"、"属性"和 "预览"视图之间切换（单击"视图"按钮旁边的箭头）<br />
Alt+7　　　　　　　　显示"工具"菜单（"工具"按钮）<br />
F5　　　　　　　　　 刷新"打开"或"另存为"对话框（"文件"菜单）中可见的文件</p>
<p>15.用于发送电子邮件的快捷键 <br />
在激活电子邮件标题后，可使用下列快捷键（按下 Shift+Tab可激活电子邮件标题）。<br />
Alt+S　　　　　　　　 发送当前文档或邮件<br />
Ctrl+Shift+B　　　　　打开通讯录<br />
Alt+K　　　　　　　　 检查"收件人"、"抄送"和"密件抄送"行中与通讯录不一致的名称<br />
Alt+.（句号）　　　　 在"收件人"域中打开通讯录<br />
Alt+C　　　　　　　　 在"抄送"域中打开通讯录<br />
Alt+B　　　　　　　　 在"密件抄送"域中打开通讯录<br />
Alt+J　　　　　　　　 转到"主题"域<br />
Alt+P　　　　　　　　 打开Microsoft Outlook"邮件选项"对话框（在邮件中，单击"视图"菜单中的"选项"命令可显示此对话框）。 <br />
Ctrl+Shift+G　　　　　创建邮件标志<br />
Shift+Tab　　　　　　 选择电子邮件标题的前一个域或按钮<br />
Tab　　　　　　　　　　选择电子邮件标题中的下一个框或选择邮件或文档的正文（当电子邮件标题中的最后一个框处于活动状态时）</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/zhaochengming/aggbug/285512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhaochengming/" target="_blank">helloworld2008</a> 2009-07-04 23:47 <a href="http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>装箱问题的Java实现</title><link>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html</link><dc:creator>好不容易</dc:creator><author>好不容易</author><pubDate>Sat, 04 Jul 2009 13:56:00 GMT</pubDate><guid>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html</guid><wfw:comment>http://www.blogjava.net/haosola/comments/285503.html</wfw:comment><comments>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haosola/comments/commentRss/285503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haosola/services/trackbacks/285503.html</trackback:ping><description><![CDATA[　问题：
<p>&nbsp;</p>
<p>　　一个工厂制造的产品形状都是长方体，它们的高度都是h，长和宽都相等，一共有六个型号，他们的长宽分别为1*1, 2*2,3*3,4*4, 5*5, 6*6。这些产品通常使用一个6*6*h的长方体包裹包装然后邮寄给客户。因为邮费很贵，所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。</p>
<p>　　Input</p>
<p>　　输入文件包括几行，每一行代表一个订单。每个订单里的一行包括六个整数，中间用空格隔开，分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。</p>
<p>　　Output</p>
<p>　　除了输入的最后一行6个0以外，输入文件里每一行对应着输出文件的一行，每一行输出一个整数代表对应的订单所需的最小包裹数。</p>
<p>　　对于6*6的一个箱子来说，最多只能放一个6*6或一个5*5或4*4的盒子，所以我们初始化需要的箱子数时就是这这几种箱子的个数和，对于3*3的箱子来说，我们可以放一个或2个或3个或4个，这我们可以通过整除和取模来确定放了3*3盒子的箱子数，再把它加入到总箱子数中，接下来我们就是把1*1和2*2的盒子塞进前面所需的箱子中，当塞不完时再来新增盒子，我们首先要将前面的箱子剩余的空间统计出来，并且要以2*2的优先考虑，因为我们可以把多余的2*2的位置变为填充4个1*1的，毕竟1*1的只要有空间随处都可以塞。所以当我们的箱子要是装了1个5*5的盒子的话，那么它就只能塞1*1的了，一个可以塞11个1*1的，对于装了4*4的盒子的话，那么还可以装5个2*2的盒子，暂且不要去转话成1*1的，除非没办法只能装1*1的，对于3*3的话就可以根据取模之后一个箱子剩下的空间了，如果一个箱子中只放了一个3*3的，那么还剩下3个3*3的空间可以放，我们知道可以放5个2*2的和7个1*1的，对于放了2个3*3的箱子，我们剩下的空间可以放3个2*2的以及6个1*1的，对于放了3个3*3的箱子，我们只能放1个2*2的和5个1*1的，这样一来我们就统计出了此时可以放2*2以及1*1的空间到底有多少，接下来我们就放箱子进去啊，放一个就减一个，知道1*1的和2*2的盒子都放完了，要是还没有放完的话我们就新增箱子或者如果1*1的没放完，而2*2的还有剩，那么就将每个2*2的转化成4个1*1的就行了，具体实现就看下面的代码吧，由于时间关系，就没写注释了。</p>
<p>　　import java.io.BufferedInputStream;</p>
<p>　　import java.util.HashMap;</p>
<p>　　import java.util.Map;</p>
<p>　　import java.util.Scanner;</p>
<p>　　public class Test</p>
<p>　　public static void main(String args)</p>
<p>　　Scanner sc=new Scanner(new BufferedInputStream(System.in));</p>
<p>　　boolean flag=true;</p>
<p>　　Map map=new HashMap();</p>
<p>　　int k=0;</p>
<p>　　while(flag)</p>
<p>　　int n=new int[6];</p>
<p>　　n[0]=sc.nextInt();</p>
<p>　　n[1]=sc.nextInt();</p>
<p>　　n[2]=sc.nextInt();</p>
<p>　　n[3]=sc.nextInt();</p>
<p>　　n[4]=sc.nextInt();</p>
<p>　　n[5]=sc.nextInt();</p>
<p>　　flag=false;</p>
<p>　　else</p>
<p>　　map.put(k, n);</p>
<p>　　k++;</p>
<p>　　for(int i=0;i&lt; map.size();i++)</p>
<p>　　int vs=(int)map.get(i);</p>
<p>　　int boxNum=0;</p>
<p>　　boxNum+=vs[3]+vs[4]+vs[5];</p>
<p>　　boxNum+=vs[2]/4;</p>
<p>　　else</p>
<p>　　boxNum+=vs[2]/4+1;</p>
<p>　　int for1=vs[4]*11;</p>
<p>　　int for2=vs[3]*5;</p>
<p>　　for1+=7;</p>
<p>　　for2+=5;</p>
<p>　　for1+=6;</p>
<p>　　for2+=3;</p>
<p>　　for1+=5;</p>
<p>　　for2+=1;</p>
<p>　　vs[0]=0;</p>
<p>　　else</p>
<p>　　vs[0]=vs[0]-for1;</p>
<p>　　vs[0]=0;</p>
<p>　　else</p>
<p>　　vs[0]=vs[0]-4*(for2-vs[1]);</p>
<p>　　vs[1]=0;</p>
<p>　　else</p>
<p>　　vs[1]=vs[1]-for2;</p>
<p>　　boxNum+=vs[1]/9;</p>
<p>　　else</p>
<p>　　boxNum+=vs[1]/9+1;</p>
<p>　　boxNum+=(vs[0]-(9-(vs[1]%9))*4)/36;</p>
<p>　　else</p>
<p>　　boxNum+=(vs[0]-(9-(vs[1]%9))*4)/36+1;</p>
<p>　　boxNum+=vs[0]/36;</p>
<p>　　else</p>
<p>　　boxNum+=vs[0]/36+1;</p>
<p>　　System.out.println(boxNum);</p>
<a href="http://www.stocksohu.cn">www.stocksohu.cn</a>&nbsp;<a href="http://www.stock117.cn">www.stock117.cn</a><br />
<img src ="http://www.blogjava.net/haosola/aggbug/285503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haosola/" target="_blank">好不容易</a> 2009-07-04 21:56 <a href="http://www.blogjava.net/haosola/archive/2009/07/04/285503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java声音技术简析</title><link>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html</link><dc:creator>好不容易</dc:creator><author>好不容易</author><pubDate>Sat, 04 Jul 2009 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html</guid><wfw:comment>http://www.blogjava.net/haosola/comments/285502.html</wfw:comment><comments>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haosola/comments/commentRss/285502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haosola/services/trackbacks/285502.html</trackback:ping><description><![CDATA[<p>　<strong>一 在t中播放声音</strong> </p>
<p>　　播放声音是java对多媒体的支持一个重要部分.现今流行的声音格式有wav,mid,au为扩展名的声音文件。而java现主要支持以au为名的声音。在t中专门提供了类AudioClip来对声音的支持。</p>
<p>　　由于t的多媒体功能书上都有很清晰的介绍也很简单。我们就以一个例子来结束这部分的说明。</p>
<p>　　import java.t.*;</p>
<p>　　public class sounda extends t</p>
<p>　　public static void main (String args)</p>
<p>　　AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");</p>
<p>　　ac.play();</p>
<p>　　// ac.loop();</p>
<p>　　// ac.stop();</p>
<p>　　上面例子只是很简单的说明，AudioClip是java中播放类。java中提供了两个很有用的方法getCodeBase()，getDocumentBase()他们分别返回t本身和包含此t主页的URL地址.上面的sloop.au即我机器上的声音文件。我们在此直接使用了AudioClip的play方法来播放声音。大家可测试用t的图像功能加入按钮。</p>
<p>　　<strong>二 java应用程序中的声音播放</strong></p>
<p>　　由于在应用程序并不支持AudioClip类。所以播放声音文件成了一大难题。制做自己的java播放器或应用媒体方面的java应用程序我们就不能支持声音了吗?不是的，sun公司为应用程序中的声音支持另提供了一个java新包。sun.audio在这个包下面提供了大部分所需要的声音处理类。注：sun包下面还有很多很有意思的技术支持，如java2D,Tools等，大家可自己尝试去使用。</p>
<p>　　下面我们就来做个自己的声音播放测试</p>
<p>　　import sun.audio.*;</p>
<p>　　import java.io.*;</p>
<p>　　public class Sound</p>
<p>　　public static voie main(String args)</p>
<p>　　try</p>
<p>　　FileInputStream fileau=new</p>
<p>　　FileInputStream("sloop.au");</p>
<p>　　AudioStream as=new AudioStream(fileau);</p>
<p>　　AudioPlayer.player.start(as);</p>
<p>　　catch (Exception e)</p>
<p>　　注：上面两例都没有提供相应的stop方法，本文章指在方法的尝试，并非全面文章，但上面的例子都是可用的。</p>
<p>　　<strong>三 javaX中Sound包的应用</strong></p>
<p>　　当我在进行上面的测试过程中，我发现javaX目录下也提供了一个sound包对java声音的强大支持，并且在sun网站的jjse上可下载到相关的大量例子程序.<a href="http://www.haokan118.cn">www.haokan118.cn</a>&nbsp;<a href="http://www.haokan120.cn">www.haokan120.cn</a><br />
</p>
<img src ="http://www.blogjava.net/haosola/aggbug/285502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haosola/" target="_blank">好不容易</a> 2009-07-04 21:53 <a href="http://www.blogjava.net/haosola/archive/2009/07/04/285502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql5.1+tomcat6连接池遇到的问题及解决方法</title><link>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html</link><dc:creator>田园风光</dc:creator><author>田园风光</author><pubDate>Sat, 04 Jul 2009 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html</guid><wfw:comment>http://www.blogjava.net/fjshenhq/comments/285498.html</wfw:comment><comments>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fjshenhq/comments/commentRss/285498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fjshenhq/services/trackbacks/285498.html</trackback:ping><description><![CDATA[<p>一、在项目中的配置：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .在WebRoot/META-INF下建context.xml文件，注意必须在该目录下：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context reloadable="true" crossContext="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Resource <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="jdbc/项目名" --------------------------------------------必须为项目名，否则会有异常<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auth="Container"--------------------------------------------------该项为不变项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="javax.sql.DataSource"---------------------------------------该项为不变项<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driverClassName="com.mysql.jdbc.Driver"-------------------------数据库驱动名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url="jdbc:mysql://localhost:3306/haotian?autoReconnect=true"-------url<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username="root"-----------------------------------------------------用户名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password="root"-----------------------------------------------------密码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxActive="10"&nbsp;&nbsp; ----------------------------------------------------最大连接数 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxIdle="5"&nbsp;&nbsp;&nbsp;&nbsp; -------------------------------------------------------最大空闲连接数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWait="-1"/&gt;&nbsp;&nbsp; -------------------------------------------------最大等待毫秒数，-1为无限等待<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Context&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Tomcat6.0以后就不需要在web.xml中配置了：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;resource-ref&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;DB Connection&lt;/description&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;res-ref-name&gt;jdbc/blog&lt;/res-ref-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;res-auth&gt;Container&lt;/res-auth&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resource-ref&gt;<br />
<br />
<br />
二、配置过程中遇到的异常及解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决方法：连接池的名字是name="jdbc/项目名"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决方法：必须把mysql的驱动包，拷贝到tomcat/lib目录下<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; (3)javax.naming.NameNotFoundException: Name&nbsp;jdbc is not bound in this Context<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个异常可能是使用tomcat6版本以下，需要在项目的web.xml配置：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;resource-ref&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;DB Connection&lt;/description&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;res-ref-name&gt;jdbc/blog&lt;/res-ref-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;res-auth&gt;Container&lt;/res-auth&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/resource-ref&gt;<br />
<br />
以上是个人在开发过程中遇到的异常，在参考网友提供解决及个人实践总结所得。<br />
</p>
 <img src ="http://www.blogjava.net/fjshenhq/aggbug/285498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fjshenhq/" target="_blank">田园风光</a> 2009-07-04 21:24 <a href="http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>this关键字</title><link>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html</link><dc:creator>改变，成就梦想!</dc:creator><author>改变，成就梦想!</author><pubDate>Sat, 04 Jul 2009 10:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html</guid><wfw:comment>http://www.blogjava.net/zhikai51/comments/285491.html</wfw:comment><comments>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhikai51/comments/commentRss/285491.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhikai51/services/trackbacks/285491.html</trackback:ping><description><![CDATA[<strong>一、this关键字的使用：</strong><br />
1、this在java中表示出以下的概念：<br />
&nbsp;&nbsp;&nbsp; <span style="color: red">1)、调用类中的属性：this.属性<br />
&nbsp;&nbsp;&nbsp;&nbsp;2)、调用类中的方法：this.方法()<br />
&nbsp;&nbsp;&nbsp;&nbsp;3)、调用类中的构造方法：this()<br />
&nbsp;&nbsp;&nbsp;&nbsp;4)、表示当前对象：this </span>
<p><strong>二、记住以下两点：(重点)</strong><br />
1、所有的构造方法应该是对象操作前最早调用的，所以使用this调用构造方法的时候所有的代码必须放在构造方法的首行。</p>
<p>2、在使用this调用构造方法时候至少有一个构造方法是没有使用this()调用的，而此构造方法将做为调用的出口，一般这个出口都会使用无参构造完成。</p>
<p><strong>三、this有一个最重要的概念----当前对象，当前正在调用类中方法的对象，叫做当前对象。</strong></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/zhikai51/aggbug/285491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhikai51/" target="_blank">改变，成就梦想!</a> 2009-07-04 18:47 <a href="http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程讲解</title><link>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html</link><dc:creator>改变，成就梦想!</dc:creator><author>改变，成就梦想!</author><pubDate>Sat, 04 Jul 2009 10:42:00 GMT</pubDate><guid>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html</guid><wfw:comment>http://www.blogjava.net/zhikai51/comments/285490.html</wfw:comment><comments>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhikai51/comments/commentRss/285490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhikai51/services/trackbacks/285490.html</trackback:ping><description><![CDATA[<strong>一、线程：</strong><br />
1、线程的基本概念：<strong>线程是一个程序里面不同的执行路径</strong>。(或<strong>线程是一个程序内部的顺序控制</strong>流。)<br />
2、main()方法叫主线程(主分支--&gt;一个分支就是一个线程)。<br />
3、进程：<br />
&nbsp;&nbsp;&nbsp; 进程是一个静态的概念。<br />
4、在同一时间，一个CPU只能支持一个线程在执行。<br />
5、Java的线程是通过java.lang.Thread类来实现的。<br />
6、可以通过创建一个Thread的实例来创建新的线程。<br />
7、可以通过Thread类的Start()方法来启动线程。<br />
<p><br />
<strong>二、创建线程的两种方式</strong>：<br />
1、使用<span style="color: red">实现Runnable接口</span>方式(<span style="background-color: yellow">建议能使用接口时便使用接口方式</span>）<br />
2、使用<span style="color: red">继承Thread类</span>方式（<span style="background-color: yellow">继承方式是死的</span>）<br />
&nbsp;&nbsp;&nbsp;&nbsp; sleep()方法--&gt;&gt;Thread类的静态方法<br />
3、线程的优先级是用数字表示，范围从1到10，一个线程的缺省优先级是5。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 可使用下述方法获得或设置线程对象的优先级：<br />
&nbsp;&nbsp;&nbsp;&nbsp; int getPriority();<br />
&nbsp;&nbsp;&nbsp;&nbsp; void setPriority(int newPriority);</p>
<img src ="http://www.blogjava.net/zhikai51/aggbug/285490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhikai51/" target="_blank">改变，成就梦想!</a> 2009-07-04 18:42 <a href="http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由一道编程题想到的........</title><link>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html</link><dc:creator>石头@</dc:creator><author>石头@</author><pubDate>Sat, 04 Jul 2009 10:38:00 GMT</pubDate><guid>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html</guid><wfw:comment>http://www.blogjava.net/shiliqiang/comments/285489.html</wfw:comment><comments>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiliqiang/comments/commentRss/285489.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiliqiang/services/trackbacks/285489.html</trackback:ping><description><![CDATA[&nbsp; 细节决定成败！<br />
<br />
今天一起的一个好同学给我发过来个编程题（有304瓶啤酒 每喝3瓶就可以拿这3个空瓶去换一瓶啤酒&nbsp; 一共可以喝多少瓶啤酒 ） 题目不难， 我写了个思路给他看（他说和他的一样）， 他问我结果， 我想这个做法对了结果应该正确。结果我的结果和人家的结果不一样，原因是没有加上原来的基数。<br />
<br />
&nbsp; 细节决定成败！ 尤其对做技术的人而言，希望能吸取其中的经验，在自己以后的道路上尽量不要再犯这样的错误了！<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/shiliqiang/aggbug/285489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiliqiang/" target="_blank">石头@</a> 2009-07-04 18:38 <a href="http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>爱有时要学会放弃</title><link>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html</link><dc:creator>石头@</dc:creator><author>石头@</author><pubDate>Sat, 04 Jul 2009 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html</guid><wfw:comment>http://www.blogjava.net/shiliqiang/comments/285483.html</wfw:comment><comments>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiliqiang/comments/commentRss/285483.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiliqiang/services/trackbacks/285483.html</trackback:ping><description><![CDATA[一只孤独的刺猬常常独自来到河边散步。杨柳在微风中轻轻摇曳，柳絮纷纷扬扬地飘洒下来，这时候，年青的刺猬会停下来，望着水中柳树的倒影，望着水草里自己的影子，默默地出神。一条鱼静静地游过来，游到了刺猬的心中，揉碎了水草里的梦。&#8220;为什么你总是那么忧郁呢？&#8221;鱼默默地问刺猬。 &#8220;我忧郁吗？&#8221;刺猬轻轻地笑了。 鱼温柔地注视着刺猬，默默地抚摸着鱼的忧伤，轻轻地说：&#8220;让我来温暖你的心。&#8221; 上帝啊，鱼和刺猬相爱了！ 上帝说，你见过鱼和刺猬的爱情吗？ 刺猬说：&#8220;我要把身上的刺一根根拔掉，我不想在我们拥抱的时候刺痛你。&#8221; 鱼说：&#8220;不要啊，我怎么忍心看你那一滴滴流淌下来的鲜血？那血是从我心上淌出来的。&#8221; 刺猬说：&#8220;因为我爱你！爱是不需要理由的。&#8221; 鱼说：&#8220;可是，你拔掉了刺就不是你了。我只想要给你以快乐&#8230;&#8230;&#8221; 刺猬说：&#8220;我宁愿为你一点点撕碎自己&#8230;&#8230;&#8221; 刺猬在一点点拔自己身上的刺，每拔一下都是一阵揪心的疼，每一次的疼都在鱼的心上。鱼渴望和刺猬作一次深情的相拥，它一次次地腾越而起，每一次的纵身是为了每一次的梦想，每一次的梦想是每一次跌碎的痛苦。 鱼对上帝说：&#8220;如何能让我有一双脚，我要走到爱人的身旁？&#8221; 上帝说：&#8220;孩子，请原谅我的无能为力，因为你本来就是没有脚的。&#8221; 鱼说：&#8220;难道我的爱错了？&#8221; 上帝说：&#8220;爱永远没有错。&#8221; 鱼说：&#8220;要如何做才能给我的爱人以幸福？&#8221; 上帝说：&#8220;请转身！&#8221; 鱼毅然游走了，在辽阔的水域下，鱼闪闪的鳞片渐渐消失在刺猬的眼睛里。 刺猬说：&#8220;上帝啊，鱼有眼泪吗？&#8221;上帝说：&#8220;鱼的眼泪流在水里。&#8221; 上帝啊，爱是什么？ 上帝说，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"爱有时候需要学会放弃"。 
<img src ="http://www.blogjava.net/shiliqiang/aggbug/285483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiliqiang/" target="_blank">石头@</a> 2009-07-04 17:30 <a href="http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j创建解析xml</title><link>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html</link><dc:creator>胡娟</dc:creator><author>胡娟</author><pubDate>Sat, 04 Jul 2009 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html</guid><wfw:comment>http://www.blogjava.net/hujuan/comments/285478.html</wfw:comment><comments>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hujuan/comments/commentRss/285478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hujuan/services/trackbacks/285478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 所需要的jar包                        &nbsp;                                                                                                            Normal            0   ...&nbsp;&nbsp;<a href='http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html'>阅读全文</a><img src ="http://www.blogjava.net/hujuan/aggbug/285478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hujuan/" target="_blank">胡娟</a> 2009-07-04 16:55 <a href="http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Maps Data API </title><link>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html</link><dc:creator>诗特林</dc:creator><author>诗特林</author><pubDate>Sat, 04 Jul 2009 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html</guid><wfw:comment>http://www.blogjava.net/sterning/comments/285475.html</wfw:comment><comments>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sterning/comments/commentRss/285475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sterning/services/trackbacks/285475.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sterning/archive/2009/07/04/285475.html'>阅读全文</a><img src ="http://www.blogjava.net/sterning/aggbug/285475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sterning/" target="_blank">诗特林</a> 2009-07-04 16:50 <a href="http://www.blogjava.net/sterning/archive/2009/07/04/285475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不刻盘运行Knoppix（完整版）</title><link>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Sat, 04 Jul 2009 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/285465.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/285465.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/285465.html</trackback:ping><description><![CDATA[<ol>
    <li>用虚拟光驱软件（如DAEMON Tools等）加载下载的光盘映像，然后进入虚拟成的光盘，将KNOPPIX目录拷贝到FAT32分区上，如E:\KNOPPIX；</li>
    <li>进入Knoppix光盘的&#8220;boot\isolinux&#8221;目录，将linux24和minirt24.gz拷贝到E盘根目录下（若您使用2.6.x内核，请拷贝linux26和minirt26.gz），然后将loadlin.exe放到E盘根目录下；</li>
    <li>在E盘根目录下建立一个批处理文件，例如knoppix.bat，其内容内容如下：<br />
    loadlin linux24 root=/dev/hda6 ramdisk_size=100000 init=/etc/init lang=cn apm=power-off vga=791 initrd=minirt24.gz nomce quiet BOOT_IMAGE=knoppix myconfig=scan<br />
    其中/dev/hda6是Knoppix所在的FAT32分区。Knoppix将主分区当做/dev/hda1，第一个从分区为/dev/hda5，第二个从分区为/dev/hda6，依次类推，因此E盘是/dev/hda6。如果是第一次使用，可以去掉myconfig这个参数；</li>
    <li>用vfloppy虚拟软驱进入dos界面；</li>
    <li>进入你放置Knoppix的分区（注意：在使用vfloppy时，dos界面中输入B:表示进入C盘，输入C:表示进入D盘，以此类推），输入knoppix.bat，就可进入Knoppix。</li>
</ol>
<p>此方法适用于Knoppix 3.4以上版本。</p>
<p>注意：如果上述文件未放在盘符的根目录下，可能会出现以下错误：<br />
1.Can't find KNOPPIX filesystem,sorry.<br />
Dropping you to a (very limited) shell.<br />
Press reset button to quit.</p>
<p>Additional builtin commands avaliable:<br />
cat mount umount <br />
insmod rmmod lsmod</p>
<p>2.looking for CDROM in /dev/scd0</p>
<p>需要用到的工具：<br />
<a href="/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/loadlin.rar">/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/loadlin.rar<br />
</a><a href="/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/VFloppy_PConline.rar">/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/VFloppy_PConline.rar</a></p>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/285465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-07-04 15:38 <a href="http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.1.6 struts.xml 配置</title><link>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html</link><dc:creator>scorpion剌客</dc:creator><author>scorpion剌客</author><pubDate>Sat, 04 Jul 2009 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html</guid><wfw:comment>http://www.blogjava.net/xiangjava/comments/285461.html</wfw:comment><comments>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiangjava/comments/commentRss/285461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiangjava/services/trackbacks/285461.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br />
</span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.1//EN"<br />
</span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.1.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">struts</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;配置struts.properties的key&nbsp;跟&nbsp;value&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">constant&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;scope</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;static</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;optional</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">file</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;package元素是Struts配置文件的核心，该元素可以出现0次，或者无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">package&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="必填的包名"</span><span style="color: #ff0000;">&nbsp;extends</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;namespace</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;abstract</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;externalReferenceResolver</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素可以出现，也可以不出现，最多出现一次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result-types</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result-type&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;default</span><span style="color: #0000ff;">="true|false"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result-types</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素的&nbsp;interceptors元素和interceptors-stack至少出现其中之一，也可以二者都出现</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-stack&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-stack</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">default-interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">default-interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">default-action-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">default-action-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">global-results</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该字符串内容可以出现0次或多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;映射资源<br />
</span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">global-results</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">global-exception-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">exception-mapping&nbsp;</span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;exception</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常处理资源<br />
</span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">exception-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">global-exception-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;method</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;converter</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;映射资源<br />
</span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">exception-mapping&nbsp;</span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;exception</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常处理资源<br />
</span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">exception-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">action</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">package</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">106</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">struts</span><span style="color: #0000ff;">&gt;</span></div>
<img src ="http://www.blogjava.net/xiangjava/aggbug/285461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiangjava/" target="_blank">scorpion剌客</a> 2009-07-04 15:01 <a href="http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.1.6 struts.properties 配置</title><link>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html</link><dc:creator>scorpion剌客</dc:creator><author>scorpion剌客</author><pubDate>Sat, 04 Jul 2009 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html</guid><wfw:comment>http://www.blogjava.net/xiangjava/comments/285460.html</wfw:comment><comments>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiangjava/comments/commentRss/285460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiangjava/services/trackbacks/285460.html</trackback:ping><description><![CDATA[<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;1</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.properties这是一个标准的Properties文件，</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">前面字符串是key<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;2</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;每个key就是一个Struts2属性，</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">后面对应的value就是一个Struts2属性值<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;3</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.properties文件通常放在项目里的WEB</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">INF</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">classes路径下。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;4</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;也可也放在CLASSPATH路径下，Struts2框架就可以加载该文件<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;5</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;以下这些元素同样可以在Struts2的struts.xml中通过constant配置<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;6</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;7</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定加载Struts&nbsp;2配置文件的配置文件管理器<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;8</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;该属性的默认值是org.apache.Struts2.config.DefaultConfiguration，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;9</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;这是Struts&nbsp;2默认的配置文件管理器。如果需要实现自己的配置管理器，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;10</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;开发者则可以实现一个实现Configuration接口的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;11</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;类，该类可以自己加载Struts&nbsp;2配置文件。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;12</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.configuration&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;org.apache.struts2.config.DefaultConfiguration<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;13</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;14</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Web应用的默认Locale<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;15</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.locale</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">en_US<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;16</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;17</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Web应用的默认编码集。该属性对于处理中文请求参数非常有用，对于获取<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;18</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;中文请求参数值，应该将该属性值设置为GBK或者GB2312<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;19</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.i18n.encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">UTF</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">8</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;20</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;21</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts&nbsp;2默认的ObjectFactory&nbsp;Bean<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;22</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;另外，你也可以提供一个com.opensymphony.xwork2.ObjectFactory子类名称<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;23</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;默认指定spring<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;24</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">spring<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;25</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;26</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Spring框架的自动装配模式，该属性的默认值是name，即默认根据Bean的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;27</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;name属性自动装配&nbsp;。有效值为：name,&nbsp;type,&nbsp;auto,&nbsp;constructor<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;28</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.autoWire&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;name<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;29</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;30</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定整合Spring框架时,是否缓存Bean实例<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;31</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;有效值为:</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">&nbsp;(默认值是true)&nbsp;通常不建议修改该属性值。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;32</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.useClassCache&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;33</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;34</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;确保spring的自动装配策略总是被考虑的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;35</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;有效值为:</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">&nbsp;(黑认值是false)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;36</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.autoWire.alwaysRespect&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;37</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;38</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.objectTypeDeterminer指定Struts2的类型检测机制，通常支持<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;39</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;tiger和notiger两个值<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;40</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.objectTypeDeterminer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">tiger<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;41</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.objectTypeDeterminer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;notiger&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;42</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;43</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定处理multipart</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">form</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">data的MIME类型（文件上传）请求的框架，该属性<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;44</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;支持cos、pell和jakarta等属性值，即分别对应使用cos的文件上传框架、<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;45</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;pell上传及common</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">fileupload文件上传框架。该属性的默认值为jakarta。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;46</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">cos<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;47</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">pell<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;48</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">jakarta<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;49</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;50</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.multipart.saveDir该属性指定上传文件的临时保存路<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;51</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;径，默认值是javax.servlet.context.tempdir<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;52</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.saveDir</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;53</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;54</span>&nbsp;<span style="color: rgb(0, 0, 0);">##指定文件上传中整个请求内容允许的最大字节数（&nbsp;默认2097152）<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;55</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.maxSize</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">2097152</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;56</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;57</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;加载自定义属性文件(不会覆盖struts.properties)加载多个以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;58</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.custom.properties</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">application,org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">apache</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">struts2</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">extension</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">custom<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;59</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;60</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定将HTTP请求映射到指定Action的映射器,默认映射器根据请求的前缀与<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;61</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;Action的name属性完成映射<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;62</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.mapper.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.struts2.dispatcher.mapper.DefaultActionMapper<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;63</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;64</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定需要处理的请求后缀，默认是action，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;65</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;即所有匹配</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">.action的请求都由Struts2处理。需要指定多个后缀以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;66</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.action.extension</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">action,,<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;67</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;68</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否通过JAR文件提供静态内容服务<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;69</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.serve.</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;70</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;71</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置浏览器是否缓存静态容，当应用处于开发阶段时，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;72</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;我们希望每次请求都获得服务器的最新响应，则可以设置为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;73</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.serve.</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">.browserCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;74</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;75</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否支持动态方法调用，如果需要关闭动态方法调用，则可以设置为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;76</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.enable.DynamicMethodInvocation&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;77</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;78</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;该属性设置是否允许在Action名中使用斜线，默认不使用<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;79</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.enable.SlashesInActionNames&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;80</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;81</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否允许在标签中使用表达语法<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;82</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.tag.altSyntax</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;83</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;84</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置Struts2应用是否使用开发模式。如果设置该属性为true，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;85</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;则可以在应用出错时显示更多详细的错误信息<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;86</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.devMode&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;87</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;88</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否每次HTTP请求到达时，系统都重新加载资源文件。在开发阶段设置<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;89</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;true更有得于开发&nbsp;产品发布时为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;90</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.i18n.reload</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;91</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;92</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定视图标签的视图主题<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;93</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.theme</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">xhtml<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;94</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;95</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定视图主题所需要模板文件的位置，默认值为template&nbsp;即默认加载<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;96</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;template路经下的模板文件<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;97</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.templateDir</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">template<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;98</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;99</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定模板文件的后缀，允许使用ftl,&nbsp;vm&nbsp;或&nbsp;jsp&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">100</span>&nbsp;<span style="color: rgb(0, 0, 0);">###（分别对应FreeMarker,&nbsp;Velocity,&nbsp;JSP）默认值为ftl<br />
</span><span style="color: rgb(0, 128, 128);">101</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.templateSuffix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">ftl<br />
</span><span style="color: rgb(0, 128, 128);">102</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">103</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置当struts.xml文件改变后，系统是否自动重新加载该文件<br />
</span><span style="color: rgb(0, 128, 128);">104</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.configuration.xml.reload</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">105</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">106</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocite框架所需的velocity.properties文件的位置<br />
</span><span style="color: rgb(0, 128, 128);">107</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.configfile&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;velocity.properties<br />
</span><span style="color: rgb(0, 128, 128);">108</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">109</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocity框架的Context位置，如果该框架有多个Context，则以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">110</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.contexts&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">111</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">112</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocity框架的toolbox位置。<br />
</span><span style="color: rgb(0, 128, 128);">113</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.toolboxlocation</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">114</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">115</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定web应用所在的监听端口。通常没有太大的用户，只是当Struts2需要生成<br />
</span><span style="color: rgb(0, 128, 128);">116</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;URL时（例如Url标签）该属性才提供web应用的默认端口<br />
</span><span style="color: rgb(0, 128, 128);">117</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.http.port&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">80</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">118</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">119</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;类似于struts.url.http.port&nbsp;属性，区别是该属性指定是web应用的加密服务端口<br />
</span><span style="color: rgb(0, 128, 128);">120</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.https.port&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">443</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">121</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">122</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts2生成URL时是否包含请求参数。none,&nbsp;get,&nbsp;all&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">123</span>&nbsp;<span style="color: rgb(0, 0, 0);">###（不包含，仅包含GET类型请求参数，包含全部请求参数）<br />
</span><span style="color: rgb(0, 128, 128);">124</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.includeParams&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;get<br />
</span><span style="color: rgb(0, 128, 128);">125</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">126</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定应用所需要的国际化资源文件，多个文件以E文&nbsp;逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">127</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.custom.i18n.resources</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">testmessages,testmessages2<br />
</span><span style="color: rgb(0, 128, 128);">128</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">129</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;对于某些JavaEE服务器，不支持HttpServletRequest调用getParameterMap()方法，<br />
</span><span style="color: rgb(0, 128, 128);">130</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;此时可以设置属性值为true来解决该问题对于&nbsp;WebLogic,&nbsp;Orion,&nbsp;和&nbsp;OC4J&nbsp;通常应该<br />
</span><span style="color: rgb(0, 128, 128);">131</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置该属性为true<br />
</span><span style="color: rgb(0, 128, 128);">132</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.dispatcher.parametersWorkaround&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">133</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">134</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts&nbsp;2使用的FreeMarker管理器。该属性的默认<br />
</span><span style="color: rgb(0, 128, 128);">135</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;值是&nbsp;org.apache.struts2.views.freemarker.FreemarkerManager，<br />
</span><span style="color: rgb(0, 128, 128);">136</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;这是Struts&nbsp;2内建的FreeMarker管理器<br />
</span><span style="color: rgb(0, 128, 128);">137</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.freemarker.manager.classname</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.struts2.views.freemarker.FreemarkerManager<br />
</span><span style="color: rgb(0, 128, 128);">138</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">139</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定是否启用缓存FreeMarker模板<br />
</span><span style="color: rgb(0, 128, 128);">140</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;具有相同的效果复制的模板下WEB_APP&nbsp;</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">模板<br />
</span><span style="color: rgb(0, 128, 128);">141</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.templatesCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">142</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">143</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否使用缓存模型BeanWrapper<br />
</span><span style="color: rgb(0, 128, 128);">144</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.beanwrapperCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">145</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">146</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;StrutsBeanWrapper&nbsp;javadocs以获取更多信息<br />
</span><span style="color: rgb(0, 128, 128);">147</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.wrapper.altMap</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">148</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">149</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;maxStrongSize&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;MruCacheStorage&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;freemarker<br />
</span><span style="color: rgb(0, 128, 128);">150</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.mru.max.strong.size</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">100</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">151</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">152</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定XSLT&nbsp;Result&nbsp;是否使用样式表缓存。当应用处于开发阶段时，通常被置为true，当应用处于产品时为false<br />
</span><span style="color: rgb(0, 128, 128);">153</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.xslt.nocache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">154</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">155</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否总是选择的名称将之前的所有最后的斜线<br />
</span><span style="color: rgb(0, 128, 128);">156</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.mapper.alwaysSelectFullNamespace</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">157</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">158</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否允许静态方法访问OGNL表达式<br />
</span><span style="color: rgb(0, 128, 128);">159</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ognl.allowStaticMethodAccess</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span></div>
<img src ="http://www.blogjava.net/xiangjava/aggbug/285460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiangjava/" target="_blank">scorpion剌客</a> 2009-07-04 14:59 <a href="http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让你的程序24小时都在赚钱！(转载)</title><link>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html</link><dc:creator>诗特林</dc:creator><author>诗特林</author><pubDate>Sat, 04 Jul 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html</guid><wfw:comment>http://www.blogjava.net/sterning/comments/285459.html</wfw:comment><comments>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sterning/comments/commentRss/285459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sterning/services/trackbacks/285459.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sterning/archive/2009/07/04/285459.html'>阅读全文</a><img src ="http://www.blogjava.net/sterning/aggbug/285459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sterning/" target="_blank">诗特林</a> 2009-07-04 14:49 <a href="http://www.blogjava.net/sterning/archive/2009/07/04/285459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大话深入浅出Effective Java核心实战编程思想之——猴王的把戏</title><link>http://www.blogjava.net/heis/archive/2009/07/04/285458.html</link><dc:creator>Heis</dc:creator><author>Heis</author><pubDate>Sat, 04 Jul 2009 06:37:00 GMT</pubDate><guid>http://www.blogjava.net/heis/archive/2009/07/04/285458.html</guid><wfw:comment>http://www.blogjava.net/heis/comments/285458.html</wfw:comment><comments>http://www.blogjava.net/heis/archive/2009/07/04/285458.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/heis/comments/commentRss/285458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heis/services/trackbacks/285458.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 不知道大家还记不记得在《西游记》里的莲花洞夺宝的故事，就是猴王巧夺宝物，收复金银角大王那一章。到底这个故事给了我们什么启示呢？这故事又和Effective Java有什么联系？&nbsp;&nbsp;<a href='http://www.blogjava.net/heis/archive/2009/07/04/285458.html'>阅读全文</a><img src ="http://www.blogjava.net/heis/aggbug/285458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heis/" target="_blank">Heis</a> 2009-07-04 14:37 <a href="http://www.blogjava.net/heis/archive/2009/07/04/285458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web 开发与设计师速查手册大全（下）</title><link>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html</link><dc:creator>隔叶黄莺</dc:creator><author>隔叶黄莺</author><pubDate>Sat, 04 Jul 2009 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html</guid><wfw:comment>http://www.blogjava.net/Unmi/comments/285457.html</wfw:comment><comments>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Unmi/comments/commentRss/285457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Unmi/services/trackbacks/285457.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Web 开发与设计师速查手册大全（上）中，介绍的主要是 Web 开发者常用速查手册，本文将着重介绍 Web 前端设计者常用速查手册。其中涉及颜色速查表以及 Adobe 众多设计工具的速查手册。<br><br>Color Codes<br>RGB Hex Colour Chart<br>这张 RGB 16进制颜色速查表刚好可以打印在整张 A4 纸上，包含216种所谓的 Web 安全色。下载（PNG | PDF ）&nbsp;&nbsp;<a href='http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html'>阅读全文</a><img src ="http://www.blogjava.net/Unmi/aggbug/285457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Unmi/" target="_blank">隔叶黄莺</a> 2009-07-04 14:09 <a href="http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>赌气做了一个JSF Table Component，分享源代码！</title><link>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Sat, 04 Jul 2009 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/285453.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/285453.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/285453.html</trackback:ping><description><![CDATA[周二，我兴匆匆去老刘那演示RichFaces的Table控件，可老刘说了，RichFaces太复杂，不适合我们，且还有不少的bug(这些我无法考证:)。于是他拿出一个使用了一堆JSP+Servelet+Bean写的一个表格，跟说我，我很怀疑JSF能做出这个东西来，你使用纯JSF做一个一样的表格组件我就相信JSF能够用在开发平台(注:我是此Eclipse开发平台的兼职架构师)上。我心里琢磨，既然你是用JSP/Servlet搞出来的，而JSF是基于Servlet的技术，怎么可能实现不了呢？ 三天做出来！我一直相信，技术在于使用技术的人，而不是技术本身。<br />
<br />
<span style="font-size: 18pt;">
<span style="color: red;"><a href="http://gefexample.googlecode.com/files/jsftry.tar.gz">下载</a></span> </span><br />
<br />
先看图吧：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/09/table.jpg" border="1" height="761" width="625" /><br />
<br />
再看看对应的JSF标记<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html&nbsp;</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/1999/xhtml"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:h</span><span style="color: #0000ff;">="http://java.sun.com/jsf/html"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:f</span><span style="color: #0000ff;">="http://java.sun.com/jsf/core"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:ui</span><span style="color: #0000ff;">="http://java.sun.com/jsf/facelets"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:cby</span><span style="color: #0000ff;">="http:/www.lifesting.com/jsf"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:composition&nbsp;</span><span style="color: #ff0000;">template</span><span style="color: #0000ff;">="/tpl.xhtml"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="pageTitle"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">表格展示</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="pageHeader"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">国家</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="body"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:form</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:panelGrid&nbsp;</span><span style="color: #ff0000;">columns</span><span style="color: #0000ff;">="1"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:message&nbsp;</span><span style="color: #ff0000;">for</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h:panelGrid</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:rns&nbsp;</span><span style="color: #ff0000;">text</span><span style="color: #0000ff;">="页面设置"</span><span style="color: #ff0000;">&nbsp;tableFor</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:filter&nbsp;</span><span style="color: #ff0000;">text</span><span style="color: #0000ff;">="过滤策略"</span><span style="color: #ff0000;">&nbsp;tableFor</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:delete&nbsp;</span><span style="color: #ff0000;">tableFor</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:table&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;var</span><span style="color: #0000ff;">="rec"</span><span style="color: #ff0000;">&nbsp;checkable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;idField</span><span style="color: #0000ff;">="code"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean</span><span style="color: #0000ff;">="Country"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="name"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="名称"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.name}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">cby:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="region"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="区域"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.region}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">cby:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="surfaceArea"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #0000ff;">="150"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="表面积"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.surfaceArea}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">cby:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="population"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="人口"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.population}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">cby:column</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">cby:ds&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">cby:table</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h:form</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:composition</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></div>
<br />
因为开发平台最终是以BO为核心，所以此表格组件是通过设置 bean，然后再通过Hibernate来获取数据的。<br />
<br />
这个组件除采用JSF +Facelet之外，没有其它页面技术，代码简洁，无抽象，且里面还有注释，初学者可以参考一下。<br />
<br />
主要功能：<br />
1 设置column的filterable属性(true/false)来过滤数据(目前实现为左匹配，比如输入Sa，就是Sa开头的)<br />
2 分页导航<br />
3 设置column的sortable属性(true/false)用来对某列进行 正/反 排序<br />
4 改变页记录大小，默认为20条/页<br />
5 设置table的checkable属性为true，表格将会多一行用来选择。<br />
6 可以批量删除被checked的记录。<br />
<br />
这个组件只考虑了功能，并没有考虑到美观，如果你觉得可以用，改改它的html属性设置。<br />
<br />
安装：<br />
<br />
1 附件是一个Maven项目，必须安装有maven。<br />
2 安装MySQL数据库，启动MySQL，运行 <br />
create database world<br />
3 找到项目下面的world.sql，假设其路径为/a/b/c/world.sql，使用MySQL的source命令<br />
use world<br />
source /a/b/c/world.sql<br />
4修改项目下的hibernate.cfg.xml中MySQL数据库用户名/密码。<br />
5 执行mvn jetty:run 启动<br />
6 浏览器输入 http://localhost:8080/jsftry/ 就可以看到效果了<br />
<br />
关于调试：<br />
1 下载一个Eclipse JEE版本<br />
2&nbsp; 在项目目录下执行 mvn eclipse:clean eclipse:eclipse -DdownloadSources=true -Dwtpversion=1.5<br />
<br />
虽然工作中不用Java很久了，但拿起来玩玩还是觉得Java真的很有生产力。JSF，Hibernate，Maven，Eclipse一个比一个牛比。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/lifesting/aggbug/285453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2009-07-04 13:22 <a href="http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2.x 精简实例系列教程（待发表，敬请关注）</title><link>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Sat, 04 Jul 2009 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/285449.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/285449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/285449.html</trackback:ping><description><![CDATA[<p>教程别名：基于Struts 2.x 的SimpleWeb小项目开发教程</p> <p>Struts版本：Struts 2.1.6</p> <p>两种实现形式：</p> <blockquote> <p>a. XML配置形式，兼容Struts 2.0，JSP文件置根目录下</p> <p>b. Annotation注解形式，JSP文件置WEB-INF下面</p></blockquote> <p>标签库两种形式：a. Struts 2 tag&nbsp;&nbsp;&nbsp; b. JSTL+EL</p> <p>实例项目名：SimpleWeb</p> <p>（1）环境搭建与HelloSimple测试</p> <p>（2）用户登录实例讲解Action（Action&amp;Result）</p> <p>（3）用JavaBean写用户业务逻辑（POJO，JDBC，Junit）</p> <p>（4）用户注册模块与重用户登录模块（exception，Session的设置）</p> <p>（5）用户的CRUD操作（Method）</p> <p>（6）新闻和栏目相关业务逻辑的编写</p> <p>（7）新闻与栏目操作的Action与整合eWebEditor</p> <p>（8）整合Jquery技术</p> <p>（9）重写用户注册模块与用户登录模块（融入Jquery技术）</p> <p>…… 其他内容，如果大家需要，请跟我说一下，我会考虑加入我的教程中。</p> <p>&nbsp;</p> <p>原则：不要因技术而学技术，而要根据需要而学：Struts 2.x有些东西是不需要用或者很少用到的，在本教程中就没有涉及到。</p> <p>本教程适用：</p> <p>1、想学习Struts 2.x的朋友</p> <p>2、没时间学习Hibernate,Spring等框架，而只想用Struts 2.x + JDBC做开发的朋友</p> <p>&nbsp;</p> <p>实例正在开发中，教程正在编写中，敬请关注！</p><img src ="http://www.blogjava.net/rongxh7/aggbug/285449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-07-04 11:55 <a href="http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Radius服务中使用MS-CHAP-V1协议进行通讯</title><link>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html</link><dc:creator>青果</dc:creator><author>青果</author><pubDate>Sat, 04 Jul 2009 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html</guid><wfw:comment>http://www.blogjava.net/ruchal/comments/285445.html</wfw:comment><comments>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ruchal/comments/commentRss/285445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ruchal/services/trackbacks/285445.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近一个项目“无线网接入动态密码验证” ，使用思科的ACS作为Radius客户端，自己实现Radius服务端进行密码验证，步骤如下：（握手过程Radius已经封装，无须管它）<br>1，    客户端：发送报文，接受返回报文并解析，然后进行相应的处理（客户端由思科的ACS处理）；<br>2，    服务端：接受报文，解析报文并验证（密码之类），然后响应相应的结果（需要java实现）&nbsp;&nbsp;<a href='http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html'>阅读全文</a><img src ="http://www.blogjava.net/ruchal/aggbug/285445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ruchal/" target="_blank">青果</a> 2009-07-04 11:42 <a href="http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>堆与栈有什么区别？</title><link>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html</link><dc:creator>飘摇</dc:creator><author>飘摇</author><pubDate>Sat, 04 Jul 2009 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html</guid><wfw:comment>http://www.blogjava.net/BJswing/comments/285446.html</wfw:comment><comments>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BJswing/comments/commentRss/285446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BJswing/services/trackbacks/285446.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 堆和栈的区别&nbsp;&nbsp;<a href='http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html'>阅读全文</a><img src ="http://www.blogjava.net/BJswing/aggbug/285446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BJswing/" target="_blank">飘摇</a> 2009-07-04 11:21 <a href="http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些js ajax 源码</title><link>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 04 Jul 2009 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/285439.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/285439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/285439.html</trackback:ping><description><![CDATA[今日做网站，对js&nbsp; div+css等小有感冒<br />
1.首页flash图片轮播源文件<br />
<a href="/Files/chenglu/flash-index.rar">/Files/chenglu/flash-index.rar</a><br />
2.图片局部放大<br />
<a href="/Files/chenglu/tjpzoom.zip">/Files/chenglu/tjpzoom.zip</a><br />
3.Tab内容切换<br />
<a href="/Files/chenglu/ajaxtabscontent.rar">/Files/chenglu/ajaxtabscontent.rar</a><br />
4.Jquery报纸特效<br />
<a href="/Files/chenglu/jquerynewspager.rar">/Files/chenglu/jquerynewspager.rar</a>
<img src ="http://www.blogjava.net/chenglu/aggbug/285439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-07-04 09:17 <a href="http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse中10个比较有用的快捷键组合 </title><link>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Fri, 03 Jul 2009 21:42:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/285433.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/285433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/285433.html</trackback:ping><description><![CDATA[一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码，使得整体的开发效率和质量得到提升。
<p><strong>&nbsp;&nbsp;&nbsp; 1. ctrl+shift+r：打开资源</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件，而你只需要按下文件名或mask名中的前几个字母，比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092247938.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 2. ctrl+o：快速outline</strong></p>
<p>&nbsp;&nbsp;&nbsp; 如果想要查看当前类的方法或某个特定方法，但又不想把代码拉上拉下，也不想使用查找功能的话，就用ctrl+o吧。它可以列出当前类中的所有方法及属性，你只需输入你想要查询的方法名，点击enter就能够直接跳转至你想去的位置。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248145.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 3. ctrl+e：快速转换编辑器</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡，但是在很多文件打开的状态下，ctrl+e会更加有效率。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248844.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 4. ctrl+2，L：为本地变量赋值</strong></p>
<p>&nbsp;&nbsp;&nbsp; 开发过程中，我常常先编写方法，如Calendar.getInstance()，然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。这样我节省了输入类名，变量名以及导入声明的时间。Ctrl+F的效果类似，不过效果是把方法的计算结果赋值于类中的域。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 5. alt+shift+r：重命名</strong></p>
<p>&nbsp;&nbsp;&nbsp; 重命名属性及方法在几年前还是个很麻烦的事，需要大量使用搜索及替换，以至于代码变得零零散散的。今天的Java IDE提供源码处理功能，Eclipse也是一样。现在，变量和方法的重命名变得十分简单，你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使用这个功能，将鼠标移动至属性名或方法名上，按下alt+shift+r，输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性，你可以点击alt+shift+r两次，这会呼叫出源码处理对话框，可以实现get及set方法的自动重命名。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 6. alt+shift+l以及alt+shift+m：提取本地变量及方法</strong></p>
<p>&nbsp;&nbsp;&nbsp; 源码处理还包括从大块的代码中提取变量和方法的功能。比如，要从一个string创建一个常量，那么就选定文本并按下alt+shift+l即可。如果同一个string在同一类中的别处出现，它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度，并提升代码的可测试性。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 7. shift+enter及ctrl+shift+enter</strong></p>
<p>&nbsp;&nbsp;&nbsp; Shift+enter在当前行之下创建一个空白行，与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 8. Alt+方向键</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分，这个快捷方式尤其好使。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 9. ctrl+m</strong></p>
<p>&nbsp;&nbsp;&nbsp; 大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 10. ctrl+.及ctrl+1：下一个错误及快速修改</strong></p>
<p>&nbsp;&nbsp;&nbsp; ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用，即修改建议的快捷键。新版Eclipse的修改建议做的很不错，可以帮你解决很多问题，如方法中的缺失参数，throw/catch exception，未执行的方法等等。</p>
<p align="center"><img style="width: 622px; height: 167px" height="276" alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248748.gif" width="902" twffan="done" /></a></p>
<p>&nbsp;&nbsp;&nbsp; 更多快捷键组合可在Eclipse按下ctrl+shift+L查看。</p>
<img src ="http://www.blogjava.net/sy1214520/aggbug/285433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2009-07-04 05:42 <a href="http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>