﻿<?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-最爱Java</title><link>http://www.blogjava.net/zhengzhili/</link><description>书山有路勤为径，学海无涯苦作舟</description><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 12:54:07 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 12:54:07 GMT</pubDate><ttl>60</ttl><item><title>Struts2学习笔记——国际化</title><link>http://www.blogjava.net/zhengzhili/archive/2010/11/11/337481.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Thu, 11 Nov 2010 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2010/11/11/337481.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/337481.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2010/11/11/337481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/337481.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/337481.html</trackback:ping><description><![CDATA[<p>
&nbsp;&nbsp;&nbsp; Java程序的国际化主要通过三个类完成：</p>
<p>&nbsp;&nbsp;&nbsp; java.util.ResourceBundle：用于加载一个资源包。</p>
<p>&nbsp;&nbsp;&nbsp; java.util.Locale：对应一个特定的国家/区域、语言环境。</p>
<p>&nbsp;&nbsp;&nbsp; java.text.MessageFormat：用于消息格式化。</p>
<p>&nbsp;&nbsp;&nbsp; 而资源文件的命名方式主要有三种：baseName_language_country.properties、baseName_language.properties和baseName.properties。</p>
<p>&nbsp;&nbsp;&nbsp; 以下的程序可以得到Java所支持的语言和国家：</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_23_373_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_373_Open_Text.style.display='none'; Codehighlighter1_23_373_Closed_Image.style.display='inline'; Codehighlighter1_23_373_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_23_373_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_23_373_Closed_Text.style.display='none'; Codehighlighter1_23_373_Open_Image.style.display='inline'; Codehighlighter1_23_373_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;LocalList&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_23_373_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_23_373_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img id="Codehighlighter1_67_371_Open_Image" onclick="this.style.display='none'; Codehighlighter1_67_371_Open_Text.style.display='none'; Codehighlighter1_67_371_Closed_Image.style.display='inline'; Codehighlighter1_67_371_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_67_371_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_67_371_Closed_Text.style.display='none'; Codehighlighter1_67_371_Open_Image.style.display='inline'; Codehighlighter1_67_371_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_67_371_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_67_371_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locale[]&nbsp;localeList&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;Locale.getAvailableLocales();<br />
<img id="Codehighlighter1_174_365_Open_Image" onclick="this.style.display='none'; Codehighlighter1_174_365_Open_Text.style.display='none'; Codehighlighter1_174_365_Closed_Image.style.display='inline'; Codehighlighter1_174_365_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_174_365_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_174_365_Closed_Text.style.display='none'; Codehighlighter1_174_365_Open_Image.style.display='inline'; Codehighlighter1_174_365_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;i</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">;i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">localeList.length;i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_174_365_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_174_365_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(localeList[i].getdisplayCountry()&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);">"</span><span style="color: rgb(0, 0, 0);">=</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);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;localeList[i].getCountry()&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);">"</span><span style="color: rgb(0, 0, 0);">&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);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;localeList[i].getDisplayLanguage()&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);">"</span><span style="color: rgb(0, 0, 0);">=</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);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;localeList[i].getLanguage());<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p>&nbsp;&nbsp;&nbsp; 使用国际化的代码如：&nbsp; </p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_18_248_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_248_Open_Text.style.display='none'; Codehighlighter1_18_248_Closed_Image.style.display='inline'; Codehighlighter1_18_248_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_18_248_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_18_248_Closed_Text.style.display='none'; Codehighlighter1_18_248_Open_Image.style.display='inline'; Codehighlighter1_18_248_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Hello</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_18_248_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_18_248_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img id="Codehighlighter1_62_246_Open_Image" onclick="this.style.display='none'; Codehighlighter1_62_246_Open_Text.style.display='none'; Codehighlighter1_62_246_Closed_Image.style.display='inline'; Codehighlighter1_62_246_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_62_246_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_62_246_Closed_Text.style.display='none'; Codehighlighter1_62_246_Open_Image.style.display='inline'; Codehighlighter1_62_246_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_62_246_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_62_246_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locale&nbsp;myLocale&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;Locale.getDefault();<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResourceBundle&nbsp;bundle&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;ResourceBundle.getBundle(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">mess</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,myLocale);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(bundler.getString(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">hello</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p>&nbsp;&nbsp;&nbsp; 如果在资源文件中，存在例如msg = Hello,{0}!Today is {1}.这样需要程序动态插入参数的文本，则需要使用MessageFormat类的format()方法。</p>
<p>&nbsp;&nbsp;&nbsp; 除了使用资源文件，我们也可以使用类文件来代替资源文件。使用Java文件代替资源文件的Java文件必须满足：1。类名必须是baseName_language_country，这与属性文件的命名相似。2。该类必须继承ListResourceBundle，并重写getContents方法，该方法返回Object数组。该数组的每一个项都是key-value对。</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_57_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_57_205_Open_Text.style.display='none'; Codehighlighter1_57_205_Closed_Image.style.display='inline'; Codehighlighter1_57_205_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_57_205_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_57_205_Closed_Text.style.display='none'; Codehighlighter1_57_205_Open_Image.style.display='inline'; Codehighlighter1_57_205_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;MyResource_zh_CN&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;ListResourceBundle&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_57_205_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_57_205_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">定义资源</span><span style="color: rgb(0, 128, 0);"><br />
<img id="Codehighlighter1_102_137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_102_137_Open_Text.style.display='none'; Codehighlighter1_102_137_Closed_Image.style.display='inline'; Codehighlighter1_102_137_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_102_137_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_102_137_Closed_Text.style.display='none'; Codehighlighter1_102_137_Open_Image.style.display='inline'; Codehighlighter1_102_137_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;Object&nbsp;myData[][]&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_102_137_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_102_137_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img id="Codehighlighter1_106_134_Open_Image" onclick="this.style.display='none'; Codehighlighter1_106_134_Open_Text.style.display='none'; Codehighlighter1_106_134_Closed_Image.style.display='inline'; Codehighlighter1_106_134_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_106_134_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_106_134_Closed_Text.style.display='none'; Codehighlighter1_106_134_Open_Image.style.display='inline'; Codehighlighter1_106_134_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_106_134_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_106_134_Open_Text"><span style="color: rgb(0, 0, 0);">{</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">msg</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);">类文件消息:{0},您好！今天是{1}</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
<img id="Codehighlighter1_183_203_Open_Image" onclick="this.style.display='none'; Codehighlighter1_183_203_Open_Text.style.display='none'; Codehighlighter1_183_203_Closed_Image.style.display='inline'; Codehighlighter1_183_203_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none;" id="Codehighlighter1_183_203_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_183_203_Closed_Text.style.display='none'; Codehighlighter1_183_203_Open_Image.style.display='inline'; Codehighlighter1_183_203_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;Object[][]&nbsp;getContents()</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_183_203_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_183_203_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;myData;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p><br />
&nbsp;&nbsp;&nbsp; 对于简体中文的Locale，ResourceBundler搜索资源的顺序是：</p>
<p>&nbsp;&nbsp;&nbsp; baseName_zh_CN.class;baseName_zh_CH.properties;baseName_zh.class;baseName_zh.properties;baseName.class;baseName.properties</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; Struts2访问国际化消息，主要有3种方式：1）JSP页面输出国际化消息，可以使用Struts2的&lt;s:text.../&gt;标签，该标签可以指定一个name属性，该属性就是资源文件中的key。2）在Action中，可以使用ActionSupport类的getText方法，该方法可以接受一个name参数，指定了国际化资源文件中的key。3)表单元素的Label，可以为表单标签指定一个key属性，这个key指定了国际化资源文件的key。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 对于带占位符的国际化消息，在Action中，则需要使用getText(String key, String[] args)来处理，其中args就是参数列表；而在页面中，则需要为&lt;s:text.../&gt;标签指定&lt;s:param.../&gt;子标签。如：</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:text&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="welcomeMsg"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:param</span><span style="color: rgb(0, 0, 255);">&gt;&lt;</span><span style="color: rgb(128, 0, 0);">s:property&nbsp;</span><span style="color: rgb(255, 0, 0);">value</span><span style="color: rgb(0, 0, 255);">="username"</span><span style="color: rgb(0, 0, 255);">&gt;&lt;/</span><span style="color: rgb(128, 0, 0);">s:param</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">s:text</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
<p><br />
&nbsp;&nbsp;&nbsp;在Struts2中，还有一种更加简单的表达方式。我们可以在资源文件中写例如这样的表达式：failTip=${username},对不起，您不能登录！，通过使用表达式，可以从ValueStack中取出username属性值，自动填充到消息资源中。这在Action中很常用。</p>
<p>&nbsp;&nbsp;&nbsp; 对于一个大型应用而言，国际化资源文件的管理也是一个非常浩大的工程。为了能更好的分而治之，Struts2允许针对不同的模块、不同Action来组织国家化资源文件。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 为Strut2应用指定包范围资源文件的方法是:在包的跟路径下建立多个文件名为package_language_country.properties的文件，一旦建立了这个系列的国际化资源文件，应用中处于该包下的所有Action都可以访问该资源文件。</p>
<p>&nbsp;&nbsp;&nbsp; 例如一个Action为codes\packageScope\src\lee\action\LoginAction.java，那么我们可以提供package_zh_CN.properties和package_en_US.properties两个文件放在codes\packageScope\src\lee目录下，那么这两个文件就能被lee包及lee包下所有子包内的Action所能访问。</p>
<p>&nbsp;&nbsp;&nbsp; 同时，我们也可以为LoginAction单独指定一份国际化资源文件。即在codes\packageScope\src\lee\action目录下，分别建立LoginAction_zh_CN.properties和LoginAction_en_US.properties两个文件。</p>
<p>&nbsp;&nbsp;&nbsp; 有时候，处于某种特殊的原因，我们需要临时指定资源文件，那么就需要使用&lt;s:i18n.../&gt;来充当&lt;s:text.../&gt;标签的父标签了。如：</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:i18n&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="tmp"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:text&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="loginPage"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">s:i18n</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:i18n&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="tmp"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:form&nbsp;</span><span style="color: rgb(255, 0, 0);">action</span><span style="color: rgb(0, 0, 255);">="login"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:textfield&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="username"</span><span style="color: rgb(255, 0, 0);">&nbsp;key</span><span style="color: rgb(0, 0, 255);">="user"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:textfield&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="password"</span><span style="color: rgb(255, 0, 0);">&nbsp;key</span><span style="color: rgb(0, 0, 255);">="pass"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">s:submit&nbsp;</span><span style="color: rgb(255, 0, 0);">key</span><span style="color: rgb(0, 0, 255);">="login"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">s:form</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">s:i18n</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<p><br />
&nbsp;&nbsp;&nbsp; 加载资源文件的顺序：</p>
<ol>
    <li>&nbsp;&nbsp;&nbsp; 优先加载系统中保存在ChildAction的类文件相同位置，且baseName为ChildAction的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果在1）中找不到key对应的消息，且ChildAction有父类ParentAction，则加载系统中保存在ParentAction的类文件相同位置，且baseName为ParentAction的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果2）中找不到key对应的消息，且ChildAction有实现接口IChildAction，则加载系统中保存在IChildAction的类文件相同位置，且baseName为IChildAction的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果3）中找不到key对应的消息，且ChildAction有实现接口ModelDriven（即使用模型驱动模式），则对于getModel()方法返回的model对象，重新执行1）步操作。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果在4）中找不到key对应的消息，则查找当前包下baseName为package的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果在5）中找不到key对应的消息，则沿着当前包上溯，直到最顶层包来查找baseName为package的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果在6）中找不到key对应的消息，则查找struts.custom.i18n.resources常量指定baseName的系列资源文件。</li>
    <li>&nbsp;&nbsp;&nbsp; 如果经过上面步骤一直找不到key对应的消息，将直接输出该key的字符串值</li>
</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于在JSP中访问国际化消息，则简单很多，可以分为两种形式：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）对于使用&lt;s:i18n.../&gt;标签作为父标签的&lt;s:text.../&gt;标签，将直接从&lt;s:i18n.../&gt;标签指定的国际化资源文件中加载指定key对应的消息，如果没有，则读取struts.custom.i18n.resources常量指定baseName的系列文件。如果还没有，直接输出key。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2）对于没有使用&lt;s:i18n.../&gt;标签作为父标签的&lt;s:text.../&gt;标签，则直接读取struts.custom.i18n.resources常量指定baseName的系列文件。如果没有，直接输出key。<br />
</p>
<p>&nbsp;&nbsp;&nbsp; Struts2中，&nbsp;我们可以通过ActionContext.getContext().setLocale(Locale arg)设置用户的默认语言。同时在Struts2 的defaultStack拦截栈中，i18n拦截器也能设置默认语言。i18n在执行Action方法前，会自动查找一个名为request_locale的参数。如果这个参数存在，则拦截器会将其转换成Locale对象，并设为默认的Locale。同时，这个Locale对象会保存在Session的名为WW_TRANS_I18N_LOCALE的属性中。一旦用户的Session中有WW_TRANS_I18N_LOCALE属性，则属性指定的Locale将会作为浏览器的默认Locale。因此，用户也可利用此功能来开发自行选择语言的功能。</p>
<img src ="http://www.blogjava.net/zhengzhili/aggbug/337481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2010-11-11 22:16 <a href="http://www.blogjava.net/zhengzhili/archive/2010/11/11/337481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2学习笔记 —— 上传和下载</title><link>http://www.blogjava.net/zhengzhili/archive/2010/11/07/337455.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Sun, 07 Nov 2010 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2010/11/07/337455.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/337455.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2010/11/07/337455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/337455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/337455.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; Struts2默认使用Jakarta的Common-FileUpload的文件上传解析器。见struts.properties配置文件中：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#指定使用COS的文件上...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2010/11/07/337455.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/337455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2010-11-07 14:19 <a href="http://www.blogjava.net/zhengzhili/archive/2010/11/07/337455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2学习笔记——输入校验（二）</title><link>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336024.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Sun, 24 Oct 2010 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336024.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/336024.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336024.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/336024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/336024.html</trackback:ping><description><![CDATA[<p>
&nbsp;&nbsp;&nbsp; 对于login方法的校验，可以通过&lt;ActionClassName&gt;-&lt;ActionAliasName&gt;-validation.xml文件来校验，即RegistAction-login-validation.xml文件进行校验。同时，RegistAction-validation.xml的校验规则仍旧对login方法有效。即login方法的校验规则是Region-validation.xml和RegistAction-login-validation.xml的总和。<br />
&nbsp;&nbsp;&nbsp; 如果RegistAction继承了BaseAction，那么对于BaseAction类的校验规则也会被RegistAction类所继承校验。具体来说，其校验规则的搜索文件规则如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BaseAction-validation.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;BaseAction-别名-validation.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RegistAction-validation.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;RegistAction-别名-validation.xml</p>
<p>&nbsp;&nbsp;&nbsp; 对于Struts2所支持的内建校验器，我们可以通过xwork.2.1.2.jar中的com/opensymphony/xwork2/validator/validators/default.xml文件查看。</p>
<p>&nbsp;&nbsp;&nbsp; 除了配置文件，Struts2也支持Annotation。下面就是使用Annotation配置的RegistAction:</p>
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 0);">@Validation()<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />public&nbsp;class&nbsp;RegistAction&nbsp;extends&nbsp;ActionSupport&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;-2113900523366315993L;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;//该请求包含的4个请求参数<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;name;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;pass;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;age;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Date&nbsp;birth;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getName()&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;name;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@RequiredStringValidator(type=ValidatorType.FIELD,key="name.required",message="")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@RegexFieldValidator(type=ValidatorType.FIELD,expression="\\w{4,25}",key="name.regex",message="")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setName(String&nbsp;name)&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.name&nbsp;=&nbsp;name;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getPass()&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pass;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@RequiredStringValidator(type=ValidatorType.FIELD,key="pass.required",message="")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@RegexFieldValidator(type=ValidatorType.FIELD,expression="\\w{4,25}",key="pass.regex",message="")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setPass(String&nbsp;pass)&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.pass&nbsp;=&nbsp;pass;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;getAge()&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;age;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@IntRangeFieldValidator(message="",key="age.range",min="1",max="150")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setAge(int&nbsp;age)&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.age&nbsp;=&nbsp;age;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Date&nbsp;getBirth()&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;birth;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@DateRangeFieldValidator(message="",key="birth.range",min="1900/01/01",max="2050/01/21")<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setBirth(Date&nbsp;birth)&nbsp;{<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.birth&nbsp;=&nbsp;birth;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />}<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; 对于不能通过内置校验器进行校验的逻辑，则可通过重写validate()方法来实现。如果一个Action中存在多个逻辑处理，则需要通过validateXxx()方法来分别进行校验，其中Xxx代表方法名。如login()方法对应的校验方法为validateLogin()。</p>
<p>&nbsp;&nbsp;&nbsp; Struts2的输入校验流程：</p>
<p>&nbsp;&nbsp;&nbsp; 1。类型转换器负责对字符串的请求参数执行类型转换，并将这些值设置成Action的属性值。</p>
<p>&nbsp;&nbsp;&nbsp; 2。在执行类型转换过程中，如果发生异常，则将异常保存到ActionContext中，并由conversionError拦截器负责将其封装到fieldError里。然后执行第3步；如无异常，直接执行第3步。</p>
<p>&nbsp;&nbsp;&nbsp; 3。调用Struts2内置的输入校验规则进行输入校验</p>
<p>&nbsp;&nbsp;&nbsp; 4。通过放射调用validateXxx()方法。</p>
<p>&nbsp;&nbsp;&nbsp; 5。调用validate()方法。</p>
<p>&nbsp;&nbsp;&nbsp; 6。如果上述都未发生fieldError，将调用Action里处理用户请求的处理方法；如果出现了fieldError，则转入input逻辑视图所指定的视图资源。
</p>
<img src ="http://www.blogjava.net/zhengzhili/aggbug/336024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2010-10-24 15:35 <a href="http://www.blogjava.net/zhengzhili/archive/2010/10/24/336024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2学习笔记——输入校验（一）</title><link>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336019.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Sun, 24 Oct 2010 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336019.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/336019.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2010/10/24/336019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/336019.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/336019.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; Struts2提供了基于验证框架的输入校验，在这种校验方式下，所有的输入校验只需要通过指定的配置文件即可。Struts2中每个Action都有一个校验文件，其规则为：&lt;Action名字&gt;-validation.xml。如：Code highlighting produced by Actipro CodeHighlighter (freewar...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2010/10/24/336019.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/336019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2010-10-24 15:01 <a href="http://www.blogjava.net/zhengzhili/archive/2010/10/24/336019.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----数据存储与传输</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/27/299801.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Tue, 27 Oct 2009 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/27/299801.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299801.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/27/299801.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299801.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ext.data.Connection&nbsp;&nbsp;&nbsp;&nbsp;Ext.data.Connection是对Ext.lib.Ajax的封装，它提供了配置使用Ajax的通用方式，它在内部通过Ext.lib.Ajax实现与后台的异步调用。与底层的Ext.lib.Ajax相比，Ext.data.Connection提供了更简洁的配置方式，使用起来更方便。&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2009/10/27/299801.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/299801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-27 11:00 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/27/299801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----工具栏和菜单</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299767.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Mon, 26 Oct 2009 06:43:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299767.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299767.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299767.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299767.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 简单菜单//创建工具条var&nbsp;tb&nbsp;=&nbsp;new&nbsp;Ext.Toolbar();tb.render('toolbar');//为工具条添加按钮tb.add({&nbsp;&nbsp;&nbsp;&nbsp;text:'新建',&nbsp;&nbsp;&nbsp;&nbsp;//对应的事件处理函数&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2009/10/26/299767.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/299767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-26 14:43 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/26/299767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----布局</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299732.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Mon, 26 Oct 2009 04:23:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299732.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299732.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/26/299732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299732.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299732.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 布局概述&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在EXT中，所有的布局都是从Ext.Container开始的，Ext.Container的父类是Ext.BoxComponent。Ext.BoxComponent是一个盒子组件，可以定义宽度，高度和位置等属性。作为子类，Ext.Co...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2009/10/26/299732.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/299732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-26 12:23 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/26/299732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----弹出窗口</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/25/299652.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Sun, 25 Oct 2009 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/25/299652.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299652.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/25/299652.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299652.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299652.html</trackback:ping><description><![CDATA[<strong>Ext.MessageBox<br />
<br />
</strong>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">Ext.MessageBox.alert()</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img id="Codehighlighter1_69_95_Open_Image" onclick="this.style.display='none'; Codehighlighter1_69_95_Open_Text.style.display='none'; Codehighlighter1_69_95_Closed_Image.style.display='inline'; Codehighlighter1_69_95_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_69_95_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_69_95_Closed_Text.style.display='none'; Codehighlighter1_69_95_Open_Image.style.display='inline'; Codehighlighter1_69_95_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.alert('标题','内容',</span><span style="color: #0000ff">function</span><span style="color: #000000">(btn)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_69_95_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_69_95_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert('你刚刚点击了'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;btn);<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">Ext.MessageBox.confirm()</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img id="Codehighlighter1_188_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_188_214_Open_Text.style.display='none'; Codehighlighter1_188_214_Closed_Image.style.display='inline'; Codehighlighter1_188_214_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_188_214_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_188_214_Closed_Text.style.display='none'; Codehighlighter1_188_214_Open_Image.style.display='inline'; Codehighlighter1_188_214_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.confirm('选择框','你到底是选择Yes还是No</span><span style="color: #000000">?</span><span style="color: #000000">',&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(btn)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_188_214_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_188_214_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert('你刚刚点击了'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;btn);<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">Ext.MessageBox.prompt()</span><span style="color: #008000"><br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img id="Codehighlighter1_304_349_Open_Image" onclick="this.style.display='none'; Codehighlighter1_304_349_Open_Text.style.display='none'; Codehighlighter1_304_349_Closed_Image.style.display='inline'; Codehighlighter1_304_349_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_304_349_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_304_349_Closed_Text.style.display='none'; Codehighlighter1_304_349_Open_Image.style.display='inline'; Codehighlighter1_304_349_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.prompt('输入框','随便输入一些东西',&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(btn,text)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_304_349_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_304_349_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;alert('你刚刚点击了'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;btn&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;刚刚输入了</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;text);<br />
</span><strong><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></strong></span><span style="color: #000000"><strong>);</strong></span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<strong>对话框的更多配置<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">可以输入多行的输入框</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img id="Codehighlighter1_33_203_Open_Image" onclick="this.style.display='none'; Codehighlighter1_33_203_Open_Text.style.display='none'; Codehighlighter1_33_203_Closed_Image.style.display='inline'; Codehighlighter1_33_203_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_33_203_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_33_203_Closed_Text.style.display='none'; Codehighlighter1_33_203_Open_Image.style.display='inline'; Codehighlighter1_33_203_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.show(</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_33_203_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_33_203_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;title:'多行输入框',<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;msg:'你可以多输入好几行',<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="color: #000000">300</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;buttons:Ext.MessageBox.OKCANCEL,<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;multiline:</span><span style="color: #0000ff">true</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img id="Codehighlighter1_154_201_Open_Image" onclick="this.style.display='none'; Codehighlighter1_154_201_Open_Text.style.display='none'; Codehighlighter1_154_201_Closed_Image.style.display='inline'; Codehighlighter1_154_201_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_154_201_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_154_201_Closed_Text.style.display='none'; Codehighlighter1_154_201_Open_Image.style.display='inline'; Codehighlighter1_154_201_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;fn:</span><span style="color: #0000ff">function</span><span style="color: #000000">(btn,text)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_154_201_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_154_201_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('你刚刚点击了'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;btn&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;刚刚输入了</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;text);<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">自定义对话框的按钮</span><span style="color: #008000"><br />
</span><span style="color: #008080">14</span><span style="color: #008000"><img id="Codehighlighter1_240_381_Open_Image" onclick="this.style.display='none'; Codehighlighter1_240_381_Open_Text.style.display='none'; Codehighlighter1_240_381_Closed_Image.style.display='inline'; Codehighlighter1_240_381_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_240_381_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_240_381_Closed_Text.style.display='none'; Codehighlighter1_240_381_Open_Image.style.display='inline'; Codehighlighter1_240_381_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.show(</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_240_381_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_240_381_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;title:'随便按个按钮',<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;msg:'从三个按钮里随便选择一个',<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;buttons:Ext.MessageBox.YESNOCANCEL,<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;multiline:</span><span style="color: #0000ff">true</span><span style="color: #000000">,<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img id="Codehighlighter1_351_379_Open_Image" onclick="this.style.display='none'; Codehighlighter1_351_379_Open_Text.style.display='none'; Codehighlighter1_351_379_Closed_Image.style.display='inline'; Codehighlighter1_351_379_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_351_379_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_351_379_Closed_Text.style.display='none'; Codehighlighter1_351_379_Open_Image.style.display='inline'; Codehighlighter1_351_379_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;fn:</span><span style="color: #0000ff">function</span><span style="color: #000000">(btn)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_351_379_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_351_379_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('你刚刚点击了'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;btn);<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);</span></div>
</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;Ext.MessageBox中预设的4个按钮分别是OK，Yes，No，Cancel。如果不使用YESNOCANCEL这种预设变量，也可以直接使用{ok:true, yes:true, no:true,cancel:true}的形式，这样4个按钮都会显示在对话框中。<br />
<br />
<strong>进度条<br />
<br />
</strong>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_20_138_Open_Image" onclick="this.style.display='none'; Codehighlighter1_20_138_Open_Text.style.display='none'; Codehighlighter1_20_138_Closed_Image.style.display='inline'; Codehighlighter1_20_138_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_20_138_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_20_138_Closed_Text.style.display='none'; Codehighlighter1_20_138_Open_Image.style.display='inline'; Codehighlighter1_20_138_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #000000">Ext.MessageBox.show(</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_20_138_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_20_138_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;title:'请等待',<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;msg:'读取数据中',<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="color: #000000">240</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;progress:</span><span style="color: #0000ff">true</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;closable:</span><span style="color: #0000ff">false</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">隐藏对话框右上角的关闭按钮，从而禁止用户关闭进度条</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">也可以直接使用Ext.MessageBox.progress()</span><span style="color: #008000"><br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">Ext.MessageBox.progress('请等待',msg:'读取数据中');<br />
</span><strong><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></strong></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;上述的进度状态时不会发生变化的，我们需要调用Ext.MessageBox.updateProgress()函数，如以下为每秒变化，10秒后隐藏：<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_19_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_19_209_Open_Text.style.display='none'; Codehighlighter1_19_209_Closed_Image.style.display='inline'; Codehighlighter1_19_209_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_19_209_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_19_209_Closed_Text.style.display='none'; Codehighlighter1_19_209_Open_Image.style.display='inline'; Codehighlighter1_19_209_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(v)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_19_209_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_19_209_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_42_206_Open_Image" onclick="this.style.display='none'; Codehighlighter1_42_206_Open_Text.style.display='none'; Codehighlighter1_42_206_Closed_Image.style.display='inline'; Codehighlighter1_42_206_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_42_206_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_42_206_Closed_Text.style.display='none'; Codehighlighter1_42_206_Open_Image.style.display='inline'; Codehighlighter1_42_206_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_42_206_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_42_206_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_65_110_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_110_Open_Text.style.display='none'; Codehighlighter1_65_110_Closed_Image.style.display='inline'; Codehighlighter1_65_110_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_65_110_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_65_110_Closed_Text.style.display='none'; Codehighlighter1_65_110_Open_Image.style.display='inline'; Codehighlighter1_65_110_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(v&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">11</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_65_110_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_65_110_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.MessageBox.hide();<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_117_200_Open_Image" onclick="this.style.display='none'; Codehighlighter1_117_200_Open_Text.style.display='none'; Codehighlighter1_117_200_Closed_Image.style.display='inline'; Codehighlighter1_117_200_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_117_200_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_117_200_Closed_Text.style.display='none'; Codehighlighter1_117_200_Open_Image.style.display='inline'; Codehighlighter1_117_200_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;esle&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_117_200_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_117_200_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ext.MessageBox.updateProgress(v</span><span style="color: #000000">/</span><span style="color: #000000">10</span><span style="color: #000000">,'正在读取第'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;v&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'个，一共10个');<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img id="Codehighlighter1_243_276_Open_Image" onclick="this.style.display='none'; Codehighlighter1_243_276_Open_Text.style.display='none'; Codehighlighter1_243_276_Closed_Image.style.display='inline'; Codehighlighter1_243_276_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_243_276_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_243_276_Closed_Text.style.display='none'; Codehighlighter1_243_276_Open_Image.style.display='inline'; Codehighlighter1_243_276_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">12</span><span style="color: #000000">&nbsp;;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_243_276_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_243_276_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(f(i)&nbsp;,&nbsp;i</span><span style="color: #000000">*</span><span style="color: #000000">1000</span><span style="color: #000000">);<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;还可以使用一种自动变化的进度条提示框，如Ext.MessageBox.wait('请等待', msg: ' 读取数据中');<br />
<br />
<strong>动画效果<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong>可以为对话框这是弹出和关闭的动画效果，使用animEl参数指定一个HTML元素，对话框就会依据指定的HTML元素播放弹出和关闭的动画。<br />
<br />
<strong>窗口分组</strong><br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;,&nbsp;mygroup;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_73_205_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_205_Open_Text.style.display='none'; Codehighlighter1_73_205_Closed_Image.style.display='inline'; Codehighlighter1_73_205_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_73_205_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_73_205_Closed_Text.style.display='none'; Codehighlighter1_73_205_Open_Image.style.display='inline'; Codehighlighter1_73_205_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;newWin()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_73_205_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_73_205_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_101_188_Open_Image" onclick="this.style.display='none'; Codehighlighter1_101_188_Open_Text.style.display='none'; Codehighlighter1_101_188_Closed_Image.style.display='inline'; Codehighlighter1_101_188_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_101_188_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_101_188_Closed_Text.style.display='none'; Codehighlighter1_101_188_Open_Image.style.display='inline'; Codehighlighter1_101_188_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;win&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Ext.Window(</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_101_188_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_101_188_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:'窗口'</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width:</span><span style="color: #000000">400</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height:</span><span style="color: #000000">300</span><span style="color: #000000">,<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maximizable:</span><span style="color: #0000ff">true</span><span style="color: #000000">,<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manager:mygroup<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;win.show();<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img id="Codehighlighter1_225_269_Open_Image" onclick="this.style.display='none'; Codehighlighter1_225_269_Open_Text.style.display='none'; Codehighlighter1_225_269_Closed_Image.style.display='inline'; Codehighlighter1_225_269_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_225_269_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_225_269_Closed_Text.style.display='none'; Codehighlighter1_225_269_Open_Image.style.display='inline'; Codehighlighter1_225_269_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;toBack()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_225_269_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_225_269_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;mygroup.sendToBack(mygroup.getActive());<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img id="Codehighlighter1_290_312_Open_Image" onclick="this.style.display='none'; Codehighlighter1_290_312_Open_Text.style.display='none'; Codehighlighter1_290_312_Closed_Image.style.display='inline'; Codehighlighter1_290_312_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_290_312_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_290_312_Closed_Text.style.display='none'; Codehighlighter1_290_312_Open_Image.style.display='inline'; Codehighlighter1_290_312_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;hideAll()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_290_312_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_290_312_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;mygroup.hideAll();<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img id="Codehighlighter1_337_493_Open_Image" onclick="this.style.display='none'; Codehighlighter1_337_493_Open_Text.style.display='none'; Codehighlighter1_337_493_Closed_Image.style.display='inline'; Codehighlighter1_337_493_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_337_493_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_337_493_Closed_Text.style.display='none'; Codehighlighter1_337_493_Open_Image.style.display='inline'; Codehighlighter1_337_493_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />Ext.onReady(</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_337_493_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_337_493_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;mygroup&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Ext.WindowGroup();<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Ext.get(</span><span style="color: #000000">"</span><span style="color: #000000">btn</span><span style="color: #000000">"</span><span style="color: #000000">).on(</span><span style="color: #000000">"</span><span style="color: #000000">click</span><span style="color: #000000">"</span><span style="color: #000000">,newWin);<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Ext.get(</span><span style="color: #000000">"</span><span style="color: #000000">btnToBack</span><span style="color: #000000">"</span><span style="color: #000000">).on(</span><span style="color: #000000">"</span><span style="color: #000000">click</span><span style="color: #000000">"</span><span style="color: #000000">,toBack);<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Ext.get(</span><span style="color: #000000">"</span><span style="color: #000000">btnHide</span><span style="color: #000000">"</span><span style="color: #000000">).on(</span><span style="color: #000000">"</span><span style="color: #000000">click</span><span style="color: #000000">"</span><span style="color: #000000">,hideAll);<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">);<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">BODY</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">add</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">新窗口</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btnToBack</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btnToBack</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">放到后台</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btnHide</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btnHide</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">隐藏所有</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">BODY</span><span style="color: #000000">&gt;</span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;示例中，所有通过newWind()方法产生的窗口都属于mygroup窗口组
 <img src ="http://www.blogjava.net/zhengzhili/aggbug/299652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-25 11:24 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/25/299652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----拖放</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/23/299494.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Fri, 23 Oct 2009 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/23/299494.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299494.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/23/299494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299494.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299494.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 先看最简单的拖放：1new&nbsp;Ext.dd.DDProxy('block');2//对应的HTML部分代码3&lt;div&nbsp;id="block"&nbsp;style="background:red;"&gt;&amp;nbsp;&lt;/div&gt;&nbsp;拖放组件的体系&nbsp;&nbsp;&nbsp;&nbsp;简单来说，左面4个组件都是...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2009/10/23/299494.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/299494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-23 23:42 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/23/299494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ExtJs----Ext支持的控件</title><link>http://www.blogjava.net/zhengzhili/archive/2009/10/22/299322.html</link><dc:creator>Brian</dc:creator><author>Brian</author><pubDate>Thu, 22 Oct 2009 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/zhengzhili/archive/2009/10/22/299322.html</guid><wfw:comment>http://www.blogjava.net/zhengzhili/comments/299322.html</wfw:comment><comments>http://www.blogjava.net/zhengzhili/archive/2009/10/22/299322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhengzhili/comments/commentRss/299322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhengzhili/services/trackbacks/299322.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 基本输入控件Ext.form.Field&nbsp;&nbsp;&nbsp;&nbsp;Ext.form.Field是所有表单输入控件的基类，其他的输入控件都是基于它扩展的来的。其定义了输入控件通用的属性和功能函数，这些通用的属性和功能函数大致分为3大类：页面显示样式、控件参数配置和数据有效性校验。&nbsp;&nbsp;&nbsp;&nbsp;页面显示样式：clearCls, cls, ...&nbsp;&nbsp;<a href='http://www.blogjava.net/zhengzhili/archive/2009/10/22/299322.html'>阅读全文</a><img src ="http://www.blogjava.net/zhengzhili/aggbug/299322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhengzhili/" target="_blank">Brian</a> 2009-10-22 14:31 <a href="http://www.blogjava.net/zhengzhili/archive/2009/10/22/299322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>